diff --git a/.gitignore b/.gitignore index 894015b1c6..05e1ef6c94 100644 --- a/.gitignore +++ b/.gitignore @@ -51,6 +51,7 @@ bin/ .settings .project .classpath +.factorypath # Files generated by IntelliJ ANTLR plugin key.core/src/main/gen diff --git a/key.core/src/main/antlr4/KeYLexer.g4 b/key.core/src/main/antlr4/KeYLexer.g4 index 544c9371a4..1ddd217469 100644 --- a/key.core/src/main/antlr4/KeYLexer.g4 +++ b/key.core/src/main/antlr4/KeYLexer.g4 @@ -159,6 +159,7 @@ MAXEXPANDMETHOD : '\\mayExpandMethod'; STRICT : '\\strict'; TYPEOF : '\\typeof'; INSTANTIATE_GENERIC : '\\instantiateGeneric'; +HAS_ANNOTATION: '\\hasAnnotation'; // Quantifiers, binding, substitution FORALL : '\\forall' | '\u2200'; diff --git a/key.core/src/main/antlr4/KeYParser.g4 b/key.core/src/main/antlr4/KeYParser.g4 index f111efcede..0d55e61eee 100644 --- a/key.core/src/main/antlr4/KeYParser.g4 +++ b/key.core/src/main/antlr4/KeYParser.g4 @@ -708,6 +708,7 @@ varexpId: // weigl, 2021-03-12: This will be later just an arbitrary identifier. | GET_VARIANT | IS_LABELED | ISINSTRICTFP + | HAS_ANNOTATION ; varexp_argument diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeY.java b/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeY.java index 5a0b5c602e..e4b7b86922 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeY.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeY.java @@ -69,7 +69,7 @@ * * It manages the entire contact with the recoder framework and ensures that their cross-referencing * data is always uptodate. Prior to reading any source code, special classes (i.e. stubs for some - * needed library classes) are parsed in to have them available at any time. + * needed library classes) are parsed in order to have them available at any time. * * To use a Recoder2KeY bridge to convert data structures you can use the functions: * {@link #readCompilationUnit(String)}, {@link #readCompilationUnitsAsFiles(String[], FileRepo)} or diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeYConverter.java b/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeYConverter.java index 02cb218f13..e379853741 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeYConverter.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/Recoder2KeYConverter.java @@ -630,6 +630,12 @@ public Instanceof convert(recoder.java.expression.operator.Instanceof rio) { public NewArray convert(recoder.java.expression.operator.NewArray newArr) { // first we need to collect all children ExtList children = collectChildren(newArr); + + // annotations are collected separatly as they are not tracked + var annots = newArr.getAnnotations(); + for (int i = annots.size() - 1; i >= 0; i--) + children.add(convert(annots.get(i))); + // now we have to extract the array initializer // is stored separately and must not appear in the children list ArrayInitializer arrInit = children.get(ArrayInitializer.class); @@ -1751,6 +1757,17 @@ public New convert(recoder.java.expression.operator.New n) { } } + // annotations are collected separatly as they are not tracked + var annots = n.getAnnotations(); + ImmutableArray immutableAnnots = null; + if (annots != null) { + var annotArr = new AnnotationUseSpecification[annots.size()]; + for (int i = annots.size() - 1; i >= 0; i--) { + annotArr[i] = convert(annots.get(i)); + } + immutableAnnots = new ImmutableArray<>(annotArr); + } + TypeReference maybeAnonClass = (TypeReference) callConvert(tr); if (n.getClassDeclaration() != null) { callConvert(n.getClassDeclaration()); @@ -1759,9 +1776,10 @@ public New convert(recoder.java.expression.operator.New n) { } if (rp == null) { - return new New(arguments, maybeAnonClass, null); + return new New(arguments, maybeAnonClass, null, immutableAnnots); } else { - return new New(arguments, maybeAnonClass, (ReferencePrefix) callConvert(rp)); + return new New(arguments, maybeAnonClass, (ReferencePrefix) callConvert(rp), + immutableAnnots); } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/SchemaRecoder2KeYConverter.java b/key.core/src/main/java/de/uka/ilkd/key/java/SchemaRecoder2KeYConverter.java index c97fa31041..9b0623219f 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/SchemaRecoder2KeYConverter.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/SchemaRecoder2KeYConverter.java @@ -312,10 +312,17 @@ public LocalVariableDeclaration convert(recoder.java.declaration.LocalVariableDe SchemaVariable typesv = ((TypeSVWrapper) lvd.getTypeReference()).getSV(); List mods = lvd.getModifiers(); - Modifier[] modifiers = new Modifier[mods == null ? 0 : mods.size()]; - for (int i = 0; i < modifiers.length; i++) { + List annots = lvd.getAnnotations(); + var modCount = mods == null ? 0 : mods.size(); + var annotCount = annots == null ? 0 : annots.size(); + Modifier[] modifiers = new Modifier[modCount + annotCount]; + + for (int i = 0; i < modCount; i++) { modifiers[i] = (Modifier) callConvert(mods.get(i)); } + for (int i = 0; i < annotCount; i++) { + modifiers[i + modCount] = (Modifier) callConvert(annots.get(i)); + } return new LocalVariableDeclaration(modifiers, (ProgramSV) typesv, varspecs); } else { diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/declaration/modifier/AnnotationUseSpecification.java b/key.core/src/main/java/de/uka/ilkd/key/java/declaration/modifier/AnnotationUseSpecification.java index fa81c6b4a6..4a6f9ef2a8 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/declaration/modifier/AnnotationUseSpecification.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/declaration/modifier/AnnotationUseSpecification.java @@ -4,11 +4,19 @@ package de.uka.ilkd.key.java.declaration.modifier; import de.uka.ilkd.key.java.ProgramElement; +import de.uka.ilkd.key.java.SourceData; import de.uka.ilkd.key.java.declaration.Modifier; import de.uka.ilkd.key.java.reference.TypeReference; import de.uka.ilkd.key.java.reference.TypeReferenceContainer; +import de.uka.ilkd.key.rule.MatchConditions; + +import org.key_project.logic.SyntaxElement; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class AnnotationUseSpecification extends Modifier implements TypeReferenceContainer { + private static final Logger LOGGER = LoggerFactory.getLogger(AnnotationUseSpecification.class); protected final TypeReference tr; @@ -18,7 +26,7 @@ public AnnotationUseSpecification(TypeReference tr) { } protected String getSymbol() { - return "@" + tr.toString(); + return "@" + tr.getName(); } public TypeReference getTypeReferenceAt(int index) { @@ -39,8 +47,25 @@ public ProgramElement getChildAt(int index) { throw new ArrayIndexOutOfBoundsException(); } + @Override + public SyntaxElement getChild(int index) { + return getChildAt(index); + } + public int getChildCount() { return 1; } + @Override + public MatchConditions match(SourceData source, MatchConditions matchCond) { + final ProgramElement pe = source.getSource(); + matchCond = super.match(source, matchCond); + + if (matchCond != null + && !tr.getName().equals(((AnnotationUseSpecification) pe).tr.getName())) { + return null; + } + + return matchCond; + } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/New.java b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/New.java index bd5c67dfdc..dadeff4732 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/New.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/New.java @@ -7,6 +7,7 @@ import de.uka.ilkd.key.java.declaration.ClassDeclaration; import de.uka.ilkd.key.java.declaration.TypeDeclaration; import de.uka.ilkd.key.java.declaration.TypeDeclarationContainer; +import de.uka.ilkd.key.java.declaration.modifier.AnnotationUseSpecification; import de.uka.ilkd.key.java.expression.ExpressionStatement; import de.uka.ilkd.key.java.reference.ConstructorReference; import de.uka.ilkd.key.java.reference.ReferencePrefix; @@ -15,6 +16,7 @@ import de.uka.ilkd.key.java.visitor.Visitor; import org.key_project.util.ExtList; +import org.key_project.util.collection.ImmutableArray; /** * The object allocation operator. There are two variants for New: @@ -72,10 +74,10 @@ public New(ExtList children, ReferencePrefix rp, PositionInfo pi) { accessPath = rp; } - /** * Constructor for the transformation of COMPOST ASTs to KeY. * + * @param arguments the arguments to the constructor * @param type a TypeReference (the referred type) * @param rp a ReferencePrefix as access path for the constructor */ @@ -85,6 +87,21 @@ public New(Expression[] arguments, TypeReference type, ReferencePrefix rp) { accessPath = rp; } + /** + * Constructor for the transformation of COMPOST ASTs to KeY. + * + * @param arguments the arguments to the constructor + * @param type a TypeReference (the referred type) + * @param rp a ReferencePrefix as access path for the constructor + * @param annotations the annotations on the constructor call + */ + public New(Expression[] arguments, TypeReference type, ReferencePrefix rp, + ImmutableArray annotations) { + super(arguments, type, annotations); + anonymousClass = null; + accessPath = rp; + } + @Override public SourceElement getFirstElement() { @@ -156,6 +173,9 @@ public int getChildCount() { if (anonymousClass != null) { result++; } + if (annotations != null) { + result += annotations.size(); + } return result; } @@ -186,6 +206,13 @@ public ProgramElement getChildAt(int index) { if (index == 0) { return anonymousClass; } + index--; + } + if (annotations != null) { + len = annotations.size(); + if (len > index) { + return annotations.get(index); + } } throw new ArrayIndexOutOfBoundsException(); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/NewArray.java b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/NewArray.java index 2496a1a84c..8304eefbe7 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/NewArray.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/NewArray.java @@ -159,6 +159,9 @@ public int getChildCount() { if (arrayInitializer != null) { result++; } + if (annotations != null) { + result += annotations.size(); + } return result; } @@ -189,6 +192,13 @@ public ProgramElement getChildAt(int index) { if (index == 0) { return arrayInitializer; } + index--; + } + if (annotations != null) { + len = annotations.size(); + if (len > index) { + return annotations.get(index); + } } throw new ArrayIndexOutOfBoundsException(); } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/TypeOperator.java b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/TypeOperator.java index f947db77c8..9d585eb30d 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/TypeOperator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/TypeOperator.java @@ -7,12 +7,14 @@ import de.uka.ilkd.key.java.PositionInfo; import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.java.abstraction.KeYJavaType; +import de.uka.ilkd.key.java.declaration.modifier.AnnotationUseSpecification; import de.uka.ilkd.key.java.expression.Operator; import de.uka.ilkd.key.java.reference.ExecutionContext; import de.uka.ilkd.key.java.reference.TypeReference; import de.uka.ilkd.key.java.reference.TypeReferenceContainer; import org.key_project.util.ExtList; +import org.key_project.util.collection.ImmutableArray; /** * Type operator. @@ -27,6 +29,11 @@ public abstract class TypeOperator extends Operator implements TypeReferenceCont */ protected final TypeReference typeReference; + /** + * Annotations. + */ + protected final ImmutableArray annotations; + /** * Constructor for the transformation of COMPOST ASTs to KeY. @@ -38,6 +45,8 @@ public abstract class TypeOperator extends Operator implements TypeReferenceCont protected TypeOperator(ExtList children) { super(children); typeReference = children.get(TypeReference.class); + annotations = new ImmutableArray<>( + children.collect(AnnotationUseSpecification.class)); } /** @@ -50,20 +59,32 @@ protected TypeOperator(ExtList children) { protected TypeOperator(ExtList children, PositionInfo pi) { super(children); typeReference = children.get(TypeReference.class); + annotations = new ImmutableArray<>( + children.collect(AnnotationUseSpecification.class)); } protected TypeOperator(Expression unaryChild, TypeReference typeref) { super(unaryChild); typeReference = typeref; + annotations = null; } protected TypeOperator(Expression[] arguments, TypeReference typeref) { super(arguments); typeReference = typeref; + annotations = null; + } + + protected TypeOperator(Expression[] arguments, TypeReference typeref, + ImmutableArray annotations) { + super(arguments); + typeReference = typeref; + this.annotations = annotations; } protected TypeOperator() { typeReference = null; + annotations = null; } /** @@ -110,6 +131,12 @@ public KeYJavaType getKeYJavaType(Services javaServ) { return getTypeReference().getKeYJavaType(); } - - + /** + * Get the annotations. + * + * @return the annotations. + */ + public ImmutableArray getAnnotations() { + return annotations; + } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/SchemaJavaProgramFactory.java b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/SchemaJavaProgramFactory.java index 87c056b501..0a53d36175 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/SchemaJavaProgramFactory.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/recoderext/SchemaJavaProgramFactory.java @@ -17,6 +17,8 @@ import org.key_project.logic.Namespace; import org.key_project.logic.op.sv.SchemaVariable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import recoder.ParserException; import recoder.convenience.TreeWalker; import recoder.java.*; @@ -34,6 +36,7 @@ import recoder.list.generic.ASTList; public class SchemaJavaProgramFactory extends JavaProgramFactory { + private static final Logger LOGGER = LoggerFactory.getLogger(SchemaJavaProgramFactory.class); protected Namespace svns; 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 404a945b60..d828958560 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 @@ -20,7 +20,7 @@ import org.key_project.util.ExtList; /** - * The JavaDL theory class provides access to function symvols, sorts that are part of the core + * The JavaDL theory class provides access to function symbols, sorts that are part of the core * logic * like cast or instanceof functions. */ diff --git a/key.core/src/main/java/de/uka/ilkd/key/macros/HeapSimplificationMacro.java b/key.core/src/main/java/de/uka/ilkd/key/macros/HeapSimplificationMacro.java index 4df4654399..27ca065334 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/macros/HeapSimplificationMacro.java +++ b/key.core/src/main/java/de/uka/ilkd/key/macros/HeapSimplificationMacro.java @@ -63,6 +63,35 @@ public String getDescription() { "wellFormedAnonEQ", "wellFormedMemsetArrayObjectEQ", "wellFormedMemsetArrayPrimitiveEQ", "wellFormedMemsetObjectEQ", "wellFormedMemsetLocSetEQ", "wellFormedMemsetPrimitiveEQ", + // universe rules + "createdRepfpElement", + + "dismissSelectOfDominatedObject", "dismissSelectOfDominatingObject", + "dismissSelectOfDominatedAnon", "dismissSelectOfDominatedCreatedAnon", + + "dismissSelectOfSelfRepfpComplementAnon", "dismissSelectOfSelfCreatedRepfpComplementAnon", + "dismissSelectOfDominatingRepfpComplementAnon", + "dismissSelectOfDominatingCreatedRepfpComplementAnon", + + "dismissSelectOfDominatedObjectEQ", "dismissSelectOfDominatingObjectEQ", + "dismissSelectOfDominatedAnonEQ", "dismissSelectOfDominatedCreatedAnonEQ", + + "dismissSelectOfSelfRepfpComplementAnonEQ", + "dismissSelectOfSelfCreatedRepfpComplementAnonEQ", + "dismissSelectOfDominatingRepfpComplementAnonEQ", + "dismissSelectOfDominatingCreatedRepfpComplementAnonEQ", + + "simplifySelectOfDominatedAnon", "simplifySelectOfDominatedCreatedAnon", + "simplifySelectOfSelfRepfpComplementAnon", "simplifySelectOfSelfCreatedRepfpComplementAnon", + "simplifySelectOfDominatingRepfpComplementAnon", + "simplifySelectOfDominatingCreatedRepfpComplementAnon", + + "simplifySelectOfDominatedAnonEQ", "simplifySelectOfDominatedCreatedAnonEQ", + "simplifySelectOfSelfRepfpComplementAnonEQ", + "simplifySelectOfSelfCreatedRepfpComplementAnonEQ", + "simplifySelectOfDominatingRepfpComplementAnonEQ", + "simplifySelectOfDominatingCreatedRepfpComplementAnonEQ", + // locset rules "elementOfEmpty", "elementOfAllLocs", "elementOfSingleton", "elementOfUnion", "elementOfIntersect", "elementOfSetMinus", "elementOfAllFields", "elementOfAllObjects", diff --git a/key.core/src/main/java/de/uka/ilkd/key/nparser/varexp/TacletBuilderManipulators.java b/key.core/src/main/java/de/uka/ilkd/key/nparser/varexp/TacletBuilderManipulators.java index 7d7d102e5c..9ceac1e2b0 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/nparser/varexp/TacletBuilderManipulators.java +++ b/key.core/src/main/java/de/uka/ilkd/key/nparser/varexp/TacletBuilderManipulators.java @@ -270,6 +270,8 @@ public VariableCondition build(Object[] arguments, List parameters, new ConstructorBasedBuilder("static", StaticReferenceCondition.class, SV); public static final TacletBuilderCommand DIFFERENT_FIELDS = new ConstructorBasedBuilder("differentFields", DifferentFields.class, SV, SV); + public static final AbstractConditionBuilder HAS_ANNOTATION = + new ConstructorBasedBuilder("hasAnnotation", HasAnnotationCondition.class, SV, S); public static final AbstractConditionBuilder SAME_OBSERVER = new ConstructorBasedBuilder("sameObserver", SameObserverCondition.class, PV, PV); public static final AbstractConditionBuilder applyUpdateOnRigid = new ConstructorBasedBuilder( @@ -382,7 +384,8 @@ public IsLabeledCondition build(Object[] arguments, List parameters, applyUpdateOnRigid, DROP_EFFECTLESS_ELEMENTARIES, SIMPLIFY_ITE_UPDATE, SUBFORMULAS, STATIC_FIELD, MODEL_FIELD, SUBFORMULA, DROP_EFFECTLESS_STORES, EQUAL_UNIQUE, META_DISJOINT, - IS_OBSERVER, CONSTANT, HAS_SORT, LABEL, NEW_LABEL, HAS_ELEM_SORT, IS_IN_STRICTFP); + IS_OBSERVER, CONSTANT, HAS_SORT, LABEL, NEW_LABEL, HAS_ELEM_SORT, IS_IN_STRICTFP, + HAS_ANNOTATION); register(STORE_TERM_IN, STORE_STMT_IN, HAS_INVARIANT, GET_INVARIANT, GET_FREE_INVARIANT, GET_VARIANT, IS_LABELED); loadWithServiceLoader(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/pp/PrettyPrinter.java b/key.core/src/main/java/de/uka/ilkd/key/pp/PrettyPrinter.java index df7141b3ee..61445ce379 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/pp/PrettyPrinter.java +++ b/key.core/src/main/java/de/uka/ilkd/key/pp/PrettyPrinter.java @@ -9,6 +9,7 @@ import de.uka.ilkd.key.java.abstraction.KeYJavaType; import de.uka.ilkd.key.java.abstraction.Type; import de.uka.ilkd.key.java.declaration.*; +import de.uka.ilkd.key.java.declaration.modifier.AnnotationUseSpecification; import de.uka.ilkd.key.java.expression.ArrayInitializer; import de.uka.ilkd.key.java.expression.Operator; import de.uka.ilkd.key.java.expression.ParenthesizedExpression; @@ -184,7 +185,7 @@ protected static String encodeUnicodeChars(String str) { * * @param list a program element list. */ - protected void writeKeywordList(ImmutableArray list) { + protected void writeKeywordList(ImmutableArray list) { for (int i = 0; i < list.size(); i++) { if (i != 0) { layouter.brk(); @@ -1451,6 +1452,14 @@ public void performActionOnNewArray(NewArray x) { if (addParentheses) { layouter.print("("); } + + ImmutableArray annots = x.getAnnotations(); + boolean hasAnnots = annots != null && !annots.isEmpty(); + if (hasAnnots) { + writeKeywordList(annots); + layouter.print(" "); + } + layouter.print("new "); x.getTypeReference().visit(this); @@ -1512,6 +1521,13 @@ public void performActionOnNew(New x) { printReferencePrefix(x.getReferencePrefix()); layouter.keyWord("new").print(" "); + ImmutableArray annots = x.getAnnotations(); + boolean hasAnnots = annots != null && !annots.isEmpty(); + if (hasAnnots) { + writeKeywordList(annots); + layouter.print(" "); + } + x.getTypeReference().visit(this); printArguments(x.getArguments()); if (x.getClassDeclaration() != null) { diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractOperationPO.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractOperationPO.java index 45946f69fa..7f3ff6e83b 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractOperationPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractOperationPO.java @@ -39,6 +39,8 @@ import org.key_project.util.collection.ImmutableSet; import org.jspecify.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** *

@@ -77,6 +79,7 @@ * @author Martin Hentschel */ public abstract class AbstractOperationPO extends AbstractPO { + private static final Logger LOGGER = LoggerFactory.getLogger(AbstractOperationPO.class); private static final String JAVA_LANG_THROWABLE = "java.lang.Throwable"; protected InitConfig proofConfig; diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractPO.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractPO.java index ff5a76f5d0..e14b853bc4 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/AbstractPO.java @@ -33,11 +33,14 @@ import org.key_project.util.collection.ImmutableSet; import org.key_project.util.collection.Pair; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * An abstract proof obligation implementing common functionality. */ public abstract class AbstractPO implements IPersistablePO { + private static final Logger LOGGER = LoggerFactory.getLogger(AbstractPO.class); protected TermBuilder tb; protected final InitConfig environmentConfig; diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalOperationContractPO.java b/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalOperationContractPO.java index bcdad3e776..38e7640657 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalOperationContractPO.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/init/FunctionalOperationContractPO.java @@ -36,6 +36,8 @@ import org.jspecify.annotations.NonNull; import org.jspecify.annotations.Nullable; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import static de.uka.ilkd.key.java.KeYJavaASTFactory.declare; @@ -62,6 +64,8 @@ *

*/ public class FunctionalOperationContractPO extends AbstractOperationPO implements ContractPO { + private static final Logger LOGGER = + LoggerFactory.getLogger(FunctionalOperationContractPO.class); public static final Map TRANSACTION_TAGS = new LinkedHashMap<>(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/HasAnnotationCondition.java b/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/HasAnnotationCondition.java new file mode 100644 index 0000000000..c7882bd784 --- /dev/null +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/conditions/HasAnnotationCondition.java @@ -0,0 +1,112 @@ +/* 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.conditions; + +import de.uka.ilkd.key.java.Services; +import de.uka.ilkd.key.java.declaration.*; +import de.uka.ilkd.key.java.expression.operator.TypeOperator; +import de.uka.ilkd.key.ldt.HeapLDT; +import de.uka.ilkd.key.logic.JTerm; +import de.uka.ilkd.key.rule.VariableConditionAdapter; +import de.uka.ilkd.key.rule.inst.SVInstantiations; + +import org.key_project.logic.SyntaxElement; +import org.key_project.logic.op.Function; +import org.key_project.logic.op.sv.SchemaVariable; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public final class HasAnnotationCondition extends VariableConditionAdapter { + private static final Logger LOGGER = LoggerFactory.getLogger(HasAnnotationCondition.class); + + private final SchemaVariable variable; + private final String annot; + + public HasAnnotationCondition(SchemaVariable variable, String annot) { + this.variable = variable; + this.annot = annot; + } + + @Override + public boolean check(SchemaVariable var, SyntaxElement subst, + SVInstantiations svInst, Services services) { + + if (var != variable) + return true; + + var inst = svInst.getInstantiation(variable); + + if (inst instanceof TypeOperator) { + var out = ((TypeOperator) inst) + .getAnnotations() + .stream() + .anyMatch(a -> a.getTypeReferenceAt(0).getName().equals(annot)); + return out; + } else if (!(inst instanceof JTerm)) + return false; + var op = ((JTerm) inst).op(); + + if (op.arity() != 0) + return false; + + if (op instanceof Function) { + return matchesField(services, (Function) op); + } + + return false; + } + + public boolean matchesField(Services services, Function op) { + var kpmi = services.getJavaInfo().getKeYProgModelInfo(); + + HeapLDT.SplitFieldName name = HeapLDT.trySplitFieldName(op); + if (name == null) + return false; + + var classType = ((Services) services).getJavaInfo() + .getTypeByName(name.className()); + + if (classType == null || + !(classType.getJavaType() instanceof ClassDeclaration)) + return false; + + var recoderTypeDecl = + (recoder.java.declaration.TypeDeclaration) kpmi.rec2key().toRecoder(classType); + + var fields = recoderTypeDecl.getAllFields(); + var field = fields.stream() + .filter(f -> f.getName().equals(name.attributeName())) + .findFirst() + .orElse(null); + + if (field == null) + return false; + + var fType = field.getContainingClassType(); + if (!(fType instanceof recoder.java.declaration.TypeDeclaration)) + return false; + + var fieldSpec = ((recoder.java.declaration.TypeDeclaration) fType) + .getFields().stream() + .filter(spec -> spec.getName().equals(name.attributeName())) + .findFirst() + .orElse(null); + + if (fieldSpec == null) + return false; + + var fieldDecl = fieldSpec.getParent(); + var declAnnotations = fieldDecl.getAnnotations(); + var value = declAnnotations.stream() + .anyMatch(a -> a.getTypeReference().getName().equals(annot)); + + return value; + } + + @Override + public String toString() { + return "\\hasAnnotation(" + variable + ", " + annot + ")"; + } +} diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchProgramInstruction.java b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchProgramInstruction.java index 9f593118e2..925ac5fef7 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchProgramInstruction.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchProgramInstruction.java @@ -6,6 +6,8 @@ import de.uka.ilkd.key.java.ProgramElement; import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.java.SourceData; +import de.uka.ilkd.key.java.StatementBlock; +import de.uka.ilkd.key.java.declaration.JavaDeclaration; import de.uka.ilkd.key.logic.JavaBlock; import de.uka.ilkd.key.rule.MatchConditions; @@ -31,4 +33,19 @@ public MatchResultInfo match(SyntaxElement actualElement, MatchResultInfo matchC (MatchConditions) matchConditions); return result; } + + @Override + public String toString() { + var add = ""; + + if (pe instanceof StatementBlock) { + var body = ((StatementBlock) pe).getBody(); + var first = body.get(0); + + add += " " + first.toString() + " " + first.getClass() + " " + + ((JavaDeclaration) first).getModifiers(); + } + + return "MatchProgramInstruction(pe: " + pe.toString() + ", " + pe.getClass() + ")" + add; + } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchProgramSVInstruction.java b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchProgramSVInstruction.java index 2423f190d2..3893e6a62c 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchProgramSVInstruction.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchProgramSVInstruction.java @@ -98,4 +98,9 @@ public MatchResultInfo match(SyntaxElement actualElement, } return result; } + + @Override + public String toString() { + return "MatchProgramSVInstruction"; + } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchTermLabelInstruction.java b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchTermLabelInstruction.java index 3d0eb0622e..a8171ced35 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchTermLabelInstruction.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchTermLabelInstruction.java @@ -68,4 +68,9 @@ public MatchResultInfo match(SyntaxElement actualElement, MatchResultInfo matchC return result; } + @Override + public String toString() { + return "MatchTermLabelInstruction"; + } + } diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchVariableSVInstruction.java b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchVariableSVInstruction.java index fcd7aed1c3..f5ff0ed934 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchVariableSVInstruction.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/match/vm/instructions/MatchVariableSVInstruction.java @@ -32,5 +32,4 @@ public MatchResultInfo match(SyntaxElement actualElement, MatchResultInfo mc, } return null; } - } diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/tacletbuilder/TacletGenerator.java b/key.core/src/main/java/de/uka/ilkd/key/rule/tacletbuilder/TacletGenerator.java index c313592f4d..1d6442ac3d 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/tacletbuilder/TacletGenerator.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/tacletbuilder/TacletGenerator.java @@ -245,6 +245,11 @@ public ImmutableSet generateFunctionalRepresentsTaclets(Name name, final Pair> limited = limitTerm(schemaRhs, toLimit, services); final JTerm limitedRhs = limited.first; result = result.union(limited.second); + final TermAndBoundVarPair schemaRepresentsLimited = + new TermAndBoundVarPair( + OpReplacer.replace(schemaRepresents.term.sub(1), limitedRhs, schemaRepresents.term, + services.getTermFactory()), + schemaRepresents.boundVars); // create if sequent final boolean finalClass = kjt.getJavaType() instanceof ClassDeclaration @@ -326,7 +331,7 @@ public ImmutableSet generateFunctionalRepresentsTaclets(Name name, if (satisfiability) { tacletBuilder.addRuleSet(new RuleSet(new Name("split"))); } - for (VariableSV boundSV : schemaRepresents.boundVars) { + for (VariableSV boundSV : schemaRepresentsLimited.boundVars) { for (SchemaVariable heapSV : heapSVs) { tacletBuilder.addVarsNotFreeIn(boundSV, heapSV); } @@ -343,7 +348,7 @@ public ImmutableSet generateFunctionalRepresentsTaclets(Name name, if (satisfiability) { functionalRepresentsAddSatisfiabilityBranch(target, services, heapSVs, selfSV, paramSVs, - schemaRepresents, tacletBuilder); + schemaRepresentsLimited, tacletBuilder); } tacletBuilder.setApplicationRestriction( new ApplicationRestriction(ApplicationRestriction.SAME_UPDATE_LEVEL)); diff --git a/key.core/src/main/java/de/uka/ilkd/key/speclang/ContractFactory.java b/key.core/src/main/java/de/uka/ilkd/key/speclang/ContractFactory.java index 0b0db36091..f327e885f0 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/speclang/ContractFactory.java +++ b/key.core/src/main/java/de/uka/ilkd/key/speclang/ContractFactory.java @@ -7,6 +7,7 @@ import de.uka.ilkd.key.java.Services; import de.uka.ilkd.key.java.abstraction.KeYJavaType; +import de.uka.ilkd.key.java.declaration.modifier.AnnotationUseSpecification; import de.uka.ilkd.key.logic.JTerm; import de.uka.ilkd.key.logic.TermBuilder; import de.uka.ilkd.key.logic.label.OriginTermLabel; @@ -323,6 +324,10 @@ public FunctionalOperationContract func(String baseName, KeYJavaType kjt, IProgr ImmutableList paramVars, LocationVariable resultVar, LocationVariable excVar, Map atPreVars, boolean toBeSaved) { + + // add the conditions for the universe types to the pre- and post-conditions + addUniverseConds(pm, freePres, freePosts, selfVar, paramVars, resultVar); + return new FunctionalOperationContractImpl(baseName, null, kjt, pm, pm.getContainerType(), modalityKind, pres, freePres, mby, posts, freePosts, axioms, modifiables, freeModifiables, accs, @@ -334,6 +339,98 @@ public FunctionalOperationContract func(String baseName, KeYJavaType kjt, IProgr services); } + private void addUniverseConds(IProgramMethod pm, + Map freePres, Map freePosts, + LocationVariable selfVar, + ImmutableList paramVars, LocationVariable resultVar) { + + var heap = services.getTypeConverter().getHeapLDT().getHeap(); + final TermBuilder tb = services.getTermBuilder(); + final var owner = services.getNamespaces().functions().lookup("owner"); + final var dominates = services.getNamespaces().functions().lookup("dominates"); + + int i = 0; + + var change = false; + var pres = freePres.get(heap); + for (var param : pm.getMethodDeclaration().getParameters()) { + var modifiers = param.getModifiers(); + for (var modifier : modifiers) { + if (!(modifier instanceof AnnotationUseSpecification)) + continue; + var specifier = (AnnotationUseSpecification) modifier; + var name = specifier.getTypeReferenceAt(0).getName(); + if (name.equals("Rep")) { + change = true; + pres = tb.and(pres, + tb.imp( + tb.not(tb.equals(tb.var(paramVars.get(i)), tb.NULL())), + tb.equals(tb.var(selfVar), tb.func(owner, tb.var(paramVars.get(i)))))); + break; + } else if (name.equals("Peer")) { + change = true; + pres = tb.and(pres, + tb.imp( + tb.not(tb.equals(tb.var(paramVars.get(i)), tb.NULL())), + tb.equals(tb.func(owner, tb.var(selfVar)), + tb.func(owner, tb.var(paramVars.get(i)))))); + break; + } else if (name.equals("Dom")) { + change = true; + pres = tb.and(pres, tb.imp( + tb.not(tb.equals(tb.var(paramVars.get(i)), tb.NULL())), + tb.func(dominates, tb.var(paramVars.get(i)), tb.var(selfVar)))); + } else if (name.equals("Payload")) { + change = true; + break; + } + } + + i++; + } + + if (change) + freePres.put(heap, pres); + change = false; + + var posts = freePosts.get(heap); + if (resultVar != null) { + var modifiers = pm.getMethodDeclaration().getModifiers(); + for (var modifier : modifiers) { + if (!(modifier instanceof AnnotationUseSpecification)) + continue; + var specifier = (AnnotationUseSpecification) modifier; + var name = specifier.getTypeReferenceAt(0).getName(); + if (name.equals("Rep")) { + change = true; + posts = tb.and(posts, + tb.imp( + tb.not(tb.equals(tb.var(resultVar), tb.NULL())), + tb.equals(tb.var(selfVar), tb.func(owner, tb.var(resultVar))))); + break; + } else if (name.equals("Dom")) { + pres = tb.and(pres, tb.imp( + tb.not(tb.equals(tb.var(paramVars.get(i)), tb.NULL())), + tb.func(dominates, tb.var(resultVar), tb.var(selfVar)))); + } else if (name.equals("Peer")) { + change = true; + posts = tb.and(posts, + tb.imp( + tb.not(tb.equals(tb.var(resultVar), tb.NULL())), + tb.equals(tb.func(owner, tb.var(selfVar)), + tb.func(owner, tb.var(resultVar))))); + break; + } else if (name.equals("Payload")) { + change = true; + break; + } + } + } + + if (change) + freePosts.put(heap, posts); + } + /** * Creates a new functional operation contract. * @@ -401,6 +498,10 @@ public FunctionalOperationContract func(String baseName, IProgramMethod pm, Map hasModifiable, Map hasFreeModifiable, ProgramVariableCollection progVars, boolean toBeSaved, boolean transaction) { + // add the conditions for the universe types to the pre- and post-conditions + addUniverseConds(pm, freePres, freePosts, progVars.selfVar, progVars.paramVars, + progVars.resultVar); + return new FunctionalOperationContractImpl(baseName, null, pm.getContainerType(), pm, pm.getContainerType(), modalityKind, pres, freePres, mby, posts, freePosts, axioms, modifiables, 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 a6e4a425a1..83c119abb3 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 @@ -69,7 +69,6 @@ * This is the public interface to the jml.translation package. */ public class JMLSpecFactory { - public static final String AT_PRE = "AtPre"; protected final TermBuilder tb; protected final Services services; diff --git a/key.core/src/main/javacc/de/uka/ilkd/key/parser/proofjava/ProofJavaParser.jj b/key.core/src/main/javacc/de/uka/ilkd/key/parser/proofjava/ProofJavaParser.jj index 849094e6a9..448f617a0b 100644 --- a/key.core/src/main/javacc/de/uka/ilkd/key/parser/proofjava/ProofJavaParser.jj +++ b/key.core/src/main/javacc/de/uka/ilkd/key/parser/proofjava/ProofJavaParser.jj @@ -3581,27 +3581,30 @@ TypeOperator AllocationExpression() : ClassDeclaration cd = null; NewArray na; ASTList typeArgs; + ASTList annotations = new ASTArrayList(); + AnnotationUseSpecification annot; } { + "new" + (annot = AnnotationUse() { + annot.makeParentRoleValid(); + annotations.add(annot); + })* ( LOOKAHEAD(2) - "new" + tr = PrimitiveType() { na = factory.createNewArray(); setPrefixInfo(na); - } - tr = PrimitiveType() - { na.setTypeReference(tr); } result = ArrayDimsAndInits(na) | - "new" + qn = TypedName() { result = factory.createNew(); setPrefixInfo(result); } - qn = TypedName() [typeArgs = NonWildcardTypeArguments() { qn.setTypeArguments(typeArgs); } ] ( args = Arguments() @@ -3633,6 +3636,8 @@ TypeOperator AllocationExpression() : ) ) { + result.setAnnotations(annotations); + result.makeParentRoleValid(); checkConstruction(result); setPostfixInfo(result); return result; diff --git a/key.core/src/main/javacc/de/uka/ilkd/key/parser/schemajava/SchemaJavaParser.jj b/key.core/src/main/javacc/de/uka/ilkd/key/parser/schemajava/SchemaJavaParser.jj index 7e647439b0..6926c42809 100644 --- a/key.core/src/main/javacc/de/uka/ilkd/key/parser/schemajava/SchemaJavaParser.jj +++ b/key.core/src/main/javacc/de/uka/ilkd/key/parser/schemajava/SchemaJavaParser.jj @@ -847,11 +847,11 @@ PackageSpecification PackageDeclaration() : annotations.trimToSize(); } "package" - { - result = factory.createPackageSpecification(); - setPrefixInfo(result); - result.setAnnotations(annotations); - } + { + result = factory.createPackageSpecification(); + setPrefixInfo(result); + result.setAnnotations(annotations); + } qn = Name() ";" { result.setPackageReference(qn.toPackageReference()); @@ -3453,28 +3453,32 @@ TypeOperator AllocationExpression() : ClassDeclaration cd = null; NewArray na; ASTList typeArgs; + ASTList annotations = new ASTArrayList(); + AnnotationUseSpecification annot; } { + "new" + (annot = AnnotationUse() { + annot.makeParentRoleValid(); + annotations.add(annot); + })* ( LOOKAHEAD(2) - ( "new" + ( + (tr = PrimitiveType() | tr = TypeMC()) { na = factory.createNewArray(); setPrefixInfo(na); - } - (tr = PrimitiveType() | tr = TypeMC()) - { na.setTypeReference(tr); } result = ArrayDimsAndInits(na) ) | ( - "new" - { + (qn = TypedName() | tr = TypeSV()) + { result = factory.createNew(); setPrefixInfo(result); } - (qn = TypedName() | tr = TypeSV()) [typeArgs = NonWildcardTypeArguments() { qn.setTypeArguments(typeArgs); } ] ( ( args = Arguments() @@ -3511,6 +3515,8 @@ TypeOperator AllocationExpression() : ) ) { + result.setAnnotations(annotations); + result.makeParentRoleValid(); checkConstruction(result); return result; } @@ -3792,25 +3798,8 @@ Statement BlockStatement() : { (LOOKAHEAD((AnnotationUse())* [ "final" ] "(" ")") result = SVLocalVariableDeclaration() ";" - | LOOKAHEAD((AnnotationUse())* [ "final" | "ghost" ] ";" , - { - isLocalVariable((getToken(1).kind == FINAL || getToken(1).kind == GHOST ? getToken(3) : getToken(2)).toString()) - }) - result = SVLocalVariableDeclaration() ";" - | LOOKAHEAD((AnnotationUse())* [ "final" | "ghost" ] "=" , - { - isLocalVariable((getToken(1).kind == FINAL || getToken(1).kind == GHOST ? getToken(3) : getToken(2)).toString()) - }) - result = SVLocalVariableDeclaration() ";" - | LOOKAHEAD((AnnotationUse())* [ "final" | "ghost" ] Type() ";" , - { - isLocalVariable((getToken(1).kind == FINAL || getToken(1).kind == GHOST ? getToken(3) : getToken(2)).toString()) - }) - result = SVLocalVariableDeclaration() ";" - | LOOKAHEAD((AnnotationUse())* [ "final" | "ghost" ] Type() "=" , - { - isLocalVariable((getToken(1).kind == FINAL || getToken(1).kind == GHOST ? getToken(3) : getToken(2)).toString()) - }) + | LOOKAHEAD((AnnotationUse())* [ "final" | "ghost" ] ( | Type()) + LOOKAHEAD( (";" | "=" ), { isLocalVariable(getToken(1).toString()) })) result = SVLocalVariableDeclaration() ";" | LOOKAHEAD((AnnotationUse())* [ "final" ] Type() ) @@ -3876,7 +3865,9 @@ LocalVariableDeclaration SVLocalVariableDeclaration() : { LocalVariableDeclaration result; ASTList vl = new ASTArrayList(1); + ASTList sl = new ASTArrayList(); TypeReference tr; + AnnotationUseSpecification annot; VariableSpecification var; } { @@ -3884,23 +3875,25 @@ LocalVariableDeclaration SVLocalVariableDeclaration() : result = factory.createLocalVariableDeclaration(); setPrefixInfo(result); } + (annot = AnnotationUse() { sl.add(annot); })* [ "final" { Final fi = factory.createFinal(); setPrefixInfo(fi); - result.setDeclarationSpecifiers(new ASTArrayList(fi)); + sl.add(fi); } | "ghost" { Ghost g = new Ghost(); setPrefixInfo(g); - result.setDeclarationSpecifiers(new ASTArrayList(g)); + sl.add(g); } ] (tr = TypeMC() | tr = TypeSV() | tr = Type() ) var = SVVariableDeclarator(false) {vl.add(var);} { + result.setDeclarationSpecifiers(sl); result.setTypeReference(tr); result.setVariableSpecifications(vl); checkConstruction(result); diff --git a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/JAVALANG.TXT b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/JAVALANG.TXT index ece9cf04a5..a86564689e 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/JAVALANG.TXT +++ b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/JAVALANG.TXT @@ -1,5 +1,9 @@ java.lang.Object java.lang.annotation.Annotation +java.lang.annotation.ElementType +java.lang.annotation.Retention +java.lang.annotation.RetentionPolicy +java.lang.annotation.Target java.lang.ArithmeticException java.lang.ArrayIndexOutOfBoundsException java.lang.ArrayStoreException @@ -58,4 +62,3 @@ java.util.ListIteratorImpl java.util.Date java.util.LinkedHashMap java.util.LinkedList - diff --git a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Annotation.java b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Annotation.java index ed8b65547e..a65813efb6 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Annotation.java +++ b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Annotation.java @@ -5,6 +5,9 @@ public interface Annotation { + public int hashCode(); - public java.lang.Class annotationType(); + public String toString(); + + public java.lang.Class annotationType(); } diff --git a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Documented.java b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Documented.java new file mode 100644 index 0000000000..c068b55a50 --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Documented.java @@ -0,0 +1,4 @@ +package java.lang.annotation; + +public @interface Documented { +} diff --git a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/ElementType.java b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/ElementType.java new file mode 100644 index 0000000000..4a09eb9312 --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/ElementType.java @@ -0,0 +1,16 @@ +package java.lang.annotation; + +public enum ElementType { + TYPE, + FIELD, + METHOD, + PARAMETER, + CONSTRUCTOR, + LOCAL_VARIABLE, + ANNOTATION_TYPE, + PACKAGE, + TYPE_PARAMETER, + TYPE_USE, + MODULE, + RECORD_COMPONENT +} diff --git a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Retention.java b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Retention.java new file mode 100644 index 0000000000..bb54c77a35 --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Retention.java @@ -0,0 +1,5 @@ +package java.lang.annotation; + +public @interface Retention { + public RetentionPolicy value(); +} diff --git a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/RetentionPolicy.java b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/RetentionPolicy.java new file mode 100644 index 0000000000..bcd9b9d815 --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/RetentionPolicy.java @@ -0,0 +1,7 @@ +package java.lang.annotation; + +public enum RetentionPolicy { + SOURCE, + CLASS, + RUNTIME +} diff --git a/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Target.java b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Target.java new file mode 100644 index 0000000000..f1e24a4cf6 --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/java/JavaRedux/java/lang/annotation/Target.java @@ -0,0 +1,5 @@ +package java.lang.annotation; + +public @interface Target { + public ElementType[] value(); +} 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 6936e4daea..bc2257d6a7 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 @@ -3,7 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-only */ // This file contains the RULES for heaps -// To find the DECLARATIONS for heaps, please visit heapRules.key +// To find the DECLARATIONS for heaps, please visit heap.key \rules(programRules:Java) { @@ -1366,7 +1366,7 @@ \replacewith(alpha::final(o,f)) - \heuristics(simplify) + \heuristics(simplify) }; @@ -1391,7 +1391,7 @@ \schemaVar \term Object o; \schemaVar \term int idx; - \assumes( ==> o = null ) + \assumes( ==> o = null ) \find(beta::final(o,arr(idx))) \sameUpdateLevel @@ -1400,7 +1400,7 @@ \replacewith(alpha::final(o,arr(idx))) - \heuristics(simplify) + \heuristics(simplify) }; 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 6c4ec56fdd..747230bc3d 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 @@ -82,7 +82,7 @@ instanceCreationAssignment { \schemaVar \modalOperator {diamond, box} #normal; - \find(\modality{#normal}{.. #lhs = #n; ...}\endmodality (post)) + \find(\modality{#normal}{.. #lhs = #n; ...}\endmodality (post)) \varcond(\newTypeOf(#v0, #lhs)) \replacewith(\modality{#normal}{.. #typeof(#v0) #v0 = #create-object(#n); #constructor-call(#v0, #n); diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/locSetsRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/locSetsRules.key index a1f63101ff..970be11080 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/locSetsRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/locSetsRules.key @@ -3,7 +3,7 @@ * SPDX-License-Identifier: GPL-2.0-only */ // This file contains the RULES for location sets. -// Find the DECLARATIONS in file locSet.key +// Find the DECLARATIONS in file locSets.key \rules(programRules:Java) { @@ -1769,5 +1769,4 @@ \else(empty))) \heuristics(simplify) }; - } diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/standardRules.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/standardRules.key index 90e8d1940c..3825969a56 100644 --- a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/standardRules.key +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/standardRules.key @@ -48,6 +48,13 @@ \include seqPerm; \include seqPerm2; +//universe definitions +\include universe; +\include universeDefs; +\include universeLemmas; +\include universeDismissLemmas; +\include various; + // rules for Java (order does not matter, since not provable anyway) \include javaRules; \include loopRules; diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universe.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universe.key new file mode 100644 index 0000000000..f536a495c3 --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universe.key @@ -0,0 +1,11 @@ +\functions { + Object owner(Object); + LocSet repfp(Object); + LocSet createdRepfp(Heap, Object); +} + +\predicates { + dominatesDepth(Object, Object, int); + dominates(Object, Object); + undom(Object, Object); +} diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universeDefs.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universeDefs.key new file mode 100644 index 0000000000..c78524a89d --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universeDefs.key @@ -0,0 +1,368 @@ +\rules(programRules:Java) { + // --------------------------------------------------- + // Introduction Rules + // --------------------------------------------------- + variableDeclarationPayload { + \schemaVar \formula post; + \schemaVar \program Variable #v0; + \schemaVar \program Type #t0; + \schemaVar \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + \schemaVar \program ProgramMethod #pm; + + \find(\modality{#allmodal}{.. @universe.qual.Payload #t0 #v0; ...}\endmodality (post)) + \sameUpdateLevel + + \replacewith(\modality{#allmodal}{.. ...}\endmodality (post)) + \addprogvars(#v0) + + \heuristics(simplify_prog, simplify_prog_subset) + //\displayname "variableDeclaration" + }; + + variableDeclarationPayloadAssign { + \schemaVar \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + \schemaVar \formula post; + \schemaVar \program Variable #v0; + \schemaVar \program Type #t; + \schemaVar \program VariableInitializer #vi; + + \find(\modality{#allmodal}{.. @universe.qual.Payload #t #v0 = #vi; ...}\endmodality (post)) + \replacewith(\modality{#allmodal}{.. @universe.qual.Payload #t #v0; #v0 = #vi; ...}\endmodality (post)) + + \heuristics(simplify_prog, simplify_prog_subset) + \displayname "variableDeclaration" + }; + + variableDeclarationPeer { + \schemaVar \formula post; + \schemaVar \program Variable #v0; + \schemaVar \program Type #t0; + \schemaVar \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + + \find(\modality{#allmodal}{.. @universe.qual.Peer #t0 #v0; ...}\endmodality (post)) + \sameUpdateLevel + + \replacewith(\modality{#allmodal}{.. ...}\endmodality (post)) + \addprogvars(#v0) + + \heuristics(simplify_prog, simplify_prog_subset) + \displayname "variableDeclaration" + }; + + variableDeclarationPeerAssignVariable { + \schemaVar \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + \schemaVar \formula post; + \schemaVar \program Variable #v0, #v; + \schemaVar \program Type #t1, #t; + \schemaVar \program ProgramMethod #pm; + \schemaVar \program VariableInitializer #vi; + + \find(\modality{#allmodal}{.#pm@#t(#v).. @universe.qual.Peer #t1 #v0 = #vi; ...}\endmodality (post)) + \sameUpdateLevel + \varcond(\isLocalVariable(#vi)) + \replacewith(\modality{#allmodal}{.. @universe.qual.Peer #t1 #v0; #v0 = #vi; ...}\endmodality (post)) + \add(#vi != null -> owner(#vi) = owner(#v) ==>) + + \heuristics(simplify_prog, simplify_prog_subset) + \displayname "variableDeclaration" + }; + + variableDeclarationPeerAssign { + \schemaVar \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + \schemaVar \formula post; + \schemaVar \program Variable #v0; + \schemaVar \program Type #t; + \schemaVar \program VariableInitializer #vi; + + \find(\modality{#allmodal}{.. @universe.qual.Peer #t #v0 = #vi; ...}\endmodality (post)) + \varcond(\not \isLocalVariable(#vi)) + \replacewith(\modality{#allmodal}{.. @universe.qual.Peer #t #v0; #v0 = #vi; ...}\endmodality (post)) + + \heuristics(simplify_prog, simplify_prog_subset) + \displayname "variableDeclaration" + }; + + variableDeclarationRep { + \schemaVar \formula post; + \schemaVar \program Variable #v0; + \schemaVar \program Type #t0; + \schemaVar \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + + \find(\modality{#allmodal}{.. @universe.qual.Rep #t0 #v0; ...}\endmodality (post)) + + \sameUpdateLevel + \replacewith(\modality{#allmodal}{.. ...}\endmodality (post)) + \addprogvars(#v0) + + \heuristics(simplify_prog, simplify_prog_subset) + \displayname "variableDeclaration" + }; + + variableDeclarationRepAssignVariable { + \schemaVar \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + \schemaVar \formula post; + \schemaVar \program Variable #v0, #v; + \schemaVar \program Type #t1, #t; + \schemaVar \program ProgramMethod #pm; + \schemaVar \program VariableInitializer #vi; + + \find(\modality{#allmodal}{.#pm@#t(#v).. @universe.qual.Rep #t1 #v0 = #vi; ...}\endmodality (post)) + \sameUpdateLevel + \varcond(\isLocalVariable(#vi)) + \replacewith(\modality{#allmodal}{.. @universe.qual.Rep #t1 #v0; #v0 = #vi; ...}\endmodality (post)) + \add(#vi != null -> owner(#vi) = #v ==>) + + \heuristics(simplify_prog, simplify_prog_subset) + \displayname "variableDeclaration" + }; + + variableDeclarationRepAssign { + \schemaVar \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + \schemaVar \formula post; + \schemaVar \program Variable #v0, #v; + \schemaVar \program Type #t; + \schemaVar \program ProgramMethod #pm; + \schemaVar \program VariableInitializer #vi; + + \find(\modality{#allmodal}{.. @universe.qual.Rep #t #v0 = #vi; ...}\endmodality (post)) + \varcond(\not \isLocalVariable(#vi)) + \replacewith(\modality{#allmodal}{.. @universe.qual.Rep #t #v0; #v0 = #vi; ...}\endmodality (post)) + + \heuristics(simplify_prog, simplify_prog_subset) + \displayname "variableDeclaration" + }; + + variableDeclarationDom { + \schemaVar \formula post; + \schemaVar \program Variable #v0; + \schemaVar \program Type #t0; + \schemaVar \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + + \find(\modality{#allmodal}{.. @universe.qual.Dom #t0 #v0; ...}\endmodality (post)) + + \sameUpdateLevel + \replacewith(\modality{#allmodal}{.. ...}\endmodality (post)) + \addprogvars(#v0) + + \heuristics(simplify_prog, simplify_prog_subset) + \displayname "variableDeclaration" + }; + + variableDeclarationDomAssignVariable { + \schemaVar \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + \schemaVar \formula post; + \schemaVar \program Variable #v0, #v; + \schemaVar \program Type #t1, #t; + \schemaVar \program ProgramMethod #pm; + \schemaVar \program VariableInitializer #vi; + + \find(\modality{#allmodal}{.#pm@#t(#v).. @universe.qual.Dom #t1 #v0 = #vi; ...}\endmodality (post)) + \sameUpdateLevel + \varcond(\isLocalVariable(#vi)) + \replacewith(\modality{#allmodal}{.. @universe.qual.Dom #t1 #v0; #v0 = #vi; ...}\endmodality (post)) + \add(#vi != null -> dominates(#v, #vi) ==>) + + \heuristics(simplify_prog, simplify_prog_subset) + \displayname "variableDeclaration" + }; + + variableDeclarationDomAssign { + \schemaVar \modalOperator {diamond, box, diamond_transaction, box_transaction} #allmodal; + \schemaVar \formula post; + \schemaVar \program Variable #v0, #v; + \schemaVar \program Type #t; + \schemaVar \program ProgramMethod #pm; + \schemaVar \program VariableInitializer #vi; + + \find(\modality{#allmodal}{.. @universe.qual.Dom #t #v0 = #vi; ...}\endmodality (post)) + \varcond(\not \isLocalVariable(#vi)) + \replacewith(\modality{#allmodal}{.. @universe.qual.Dom #t #v0; #v0 = #vi; ...}\endmodality (post)) + + \heuristics(simplify_prog, simplify_prog_subset) + \displayname "variableDeclaration" + }; + + instanceCreationAssignmentPeer { + \schemaVar \modalOperator {diamond, box} #normal; + \schemaVar \formula post; + \schemaVar \program ProgramMethod #pm; + \schemaVar \program Type #t; + \schemaVar \program SimpleInstanceCreation #n; + \schemaVar \program LeftHandSide #lhs; + \schemaVar \program Variable #v0, #v, #v1; + + \find(\modality{#normal}{.#pm@#t(#v).. #lhs = #n; ...}\endmodality (post)) + \sameUpdateLevel + + \varcond(\newTypeOf(#v0, #lhs), \newTypeOf(#v1, #lhs), \hasAnnotation(#n, Peer)) + \replacewith(\modality{#normal}{.. #typeof(#v0) #v0 = #create-object(#n); + #constructor-call(#v0, #n); + #post-work(#v0); + @universe.qual.Peer #typeof(#v0) #v1 = #v0; + #lhs = #v1; + ...}\endmodality (post)) + \heuristics(method_expand) + }; + + instanceCreationAssignmentRep { + \schemaVar \modalOperator {diamond, box} #normal; + \schemaVar \formula post; + \schemaVar \program ProgramMethod #pm; + \schemaVar \program Type #t; + \schemaVar \program SimpleInstanceCreation #n; + \schemaVar \program LeftHandSide #lhs; + \schemaVar \program Variable #v0, #v, #v1; + + \find(\modality{#normal}{.#pm@#t(#v).. #lhs = #n; ...}\endmodality (post)) + \sameUpdateLevel + + \varcond(\newTypeOf(#v0, #lhs), \newTypeOf(#v1, #lhs), \hasAnnotation(#n, Rep)) + \replacewith(\modality{#normal}{.. #typeof(#v0) #v0 = #create-object(#n); + #constructor-call(#v0, #n); + #post-work(#v0); + @universe.qual.Rep #typeof(#v0) #v1 = #v0; + #lhs = #v1; + ...}\endmodality (post)) + \heuristics(method_expand) + }; + + instanceCreationAssignmentDom { + \schemaVar \modalOperator {diamond, box} #normal; + \schemaVar \formula post; + \schemaVar \program ProgramMethod #pm; + \schemaVar \program Type #t; + \schemaVar \program SimpleInstanceCreation #n; + \schemaVar \program LeftHandSide #lhs; + \schemaVar \program Variable #v0, #v, #v1; + + \find(\modality{#normal}{.#pm@#t(#v).. #lhs = #n; ...}\endmodality (post)) + \sameUpdateLevel + + \varcond(\newTypeOf(#v0, #lhs), \newTypeOf(#v1, #lhs), \hasAnnotation(#n, Dom)) + \replacewith(\modality{#normal}{.. #typeof(#v0) #v0 = #create-object(#n); + #constructor-call(#v0, #n); + #post-work(#v0); + @universe.qual.Dom #typeof(#v0) #v1 = #v0; + #lhs = #v1; + ...}\endmodality (post)) + \heuristics(method_expand) + }; + + peerField { + \schemaVar \term Object o; + \schemaVar \term Field f; + \schemaVar \term Heap h; + + \find(alpha::select(h, o, f)) + \varcond(\hasAnnotation(f, Peer)) + \add(alpha::select(h, o, f) != null -> owner(Object::cast(o)) = owner(Object::cast(alpha::select(h, o, f))) ==>) + \heuristics(type_hierarchy_def) + }; + + ownsField { + \schemaVar \term Object o; + \schemaVar \term Field f; + \schemaVar \term Heap h; + + \find(alpha::select(h, o, f)) + \varcond(\hasAnnotation(f, Rep)) + \add(alpha::select(h, o, f) != null -> owner(Object::cast(alpha::select(h, o, f))) = o ==>) + \heuristics(type_hierarchy_def) + }; + + dominatesField { + \schemaVar \term Object o; + \schemaVar \term Field f; + \schemaVar \term Heap h; + + \find(alpha::select(h, o, f)) + \varcond(\hasAnnotation(f, Dom)) + \add(alpha::select(h, o, f) != null -> dominates(o, Object::cast(alpha::select(h, o, f))) ==>) + \heuristics(type_hierarchy_def) + }; + + // --------------------------------------------------- + // Predicate and Function definitions + // --------------------------------------------------- + + dominatesDepthDef { + \schemaVar \term Object x, y; + \schemaVar \variables Object ov; + \schemaVar \term int n; + + \find(dominatesDepth(x, y, n)) + \varcond(\notFreeIn(ov, x, y, n)) + \replacewith(\if (n <= 0) + \then(false) + \else(\if (n = 1) \then(x = owner(y)) \else(\exists ov; (x = owner(ov) & dominatesDepth(ov, y, n - 1))))) + }; + + dominatesDef { + \schemaVar \term Object x, y; + \schemaVar \variables int n; + + \find(dominates(x, y)) + + \varcond(\notFreeIn(n, x, y)) + \replacewith(\exists n; (dominatesDepth(x, y, n))) + }; + + // would make sense to be used by the automatics, but is somewhat misused and therefore not accessible by automatics + undomDef { + \schemaVar \term Object x, y; + + \find(undom(x, y)) + + \replacewith(!dominates(x, y) & !dominates(y, x) & !(x = y)) + }; + + // would make sense to be used by the automatics, but is somewhat misused and therefore not accessible by automatics + createdRepfpDef { + \schemaVar \term Object x; + \schemaVar \term Heap h; + \schemaVar \variables Object y; + + \find(createdRepfp(h, x)) + + \varcond(\notFreeIn(y, x, h)) + + \replacewith(intersect(infiniteUnion{y;}(\if(boolean::select(h, y, java.lang.Object::) = TRUE) \then(y.*) \else(empty)), repfp(x))) + }; + + repfpDef { + \schemaVar \term Object x; + \schemaVar \variables Object y; + + \find(repfp(x)) + \varcond(\notFreeIn(y, x)) + \replacewith(union(x.*, infiniteUnion{y;}(\if(dominates(x, y)) \then(y.*) \else(empty)))) + }; + + + // --------------------------------------------------- + // axioms for ownership + // --------------------------------------------------- + + dominatesSelf { + \schemaVar \term Object o; + + \find(dominates(o, o)) + + \replacewith(false) + + \heuristics(concrete) + }; + + dominatesMaxDepth { + \schemaVar \term Object x; + \schemaVar \variables Object y; + \schemaVar \variables int m, n; + + \find(x) + + \varcond(\notFreeIn(y, x), \notFreeIn(m, x), \notFreeIn(n, x)) + + \add(\exists n; (n >= 0 & (\forall y; (dominates(x, y) -> + (\exists m; (dominatesDepth(x, y, m) & m < n))))) ==>) + }; +} diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universeDismissLemmas.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universeDismissLemmas.key new file mode 100644 index 0000000000..506ef578e9 --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universeDismissLemmas.key @@ -0,0 +1,486 @@ + +\rules(programRules:Java) { +// ======================================================== +// == == +// == Dismiss Rules == +// == ------------- == +// ======================================================== + + // =============================== + // Normal Variant + // =============================== + + \lemma + dismissSelectOfDominatedObject { + \schemaVar \term Heap h; + \schemaVar \term Object o, u; + \schemaVar \term Field f1, f2; + \schemaVar \term any x; + + \assumes(dominates(o, u) ==>) + \find(alpha::select(store(h, o, f1, x), u, f2)) + \sameUpdateLevel + + \replacewith(alpha::select(h, u, f2)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfDominatedObjectEQ { + \schemaVar \term Heap h, EQ; + \schemaVar \term Object o, u; + \schemaVar \term Field f1, f2; + \schemaVar \term any x; + + \assumes(store(h, o, f1, x) = EQ, dominates(o, u) ==>) + \find(alpha::select(EQ, u, f2)) + \sameUpdateLevel + + \replacewith(alpha::select(h, u, f2)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfDominatingObject { + \schemaVar \term Heap h; + \schemaVar \term Object o, u; + \schemaVar \term Field f1, f2; + \schemaVar \term any x; + + \assumes(dominates(u, o) ==>) + \find(alpha::select(store(h, o, f1, x), u, f2)) + \sameUpdateLevel + + \replacewith(alpha::select(h, u, f2)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfDominatingObjectEQ { + \schemaVar \term Heap h, EQ; + \schemaVar \term Object o, u; + \schemaVar \term Field f1, f2; + \schemaVar \term any x; + + \assumes(store(h, o, f1, x) = EQ, dominates(u, o) ==>) + \find(alpha::select(EQ, u, f2)) + \sameUpdateLevel + + \replacewith(alpha::select(h, u, f2)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfDominatedAnon { + \schemaVar \term Heap h, h2; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE, dominates(o, u) ==>) + \find(alpha::select(anon(h, repfp(u), h2), o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfDominatedAnonEQ { + \schemaVar \term Heap h, h2, EQ; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE, anon(h, repfp(u), h2) = EQ, dominates(o, u) ==>) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfDominatedCreatedAnon { + \schemaVar \term Heap h, h2, h3; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE, dominates(o, u) ==>) + \find(alpha::select(anon(h, createdRepfp(h3, u), h2), o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfDominatedCreatedAnonEQ { + \schemaVar \term Heap h, h2, h3, EQ; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE, anon(h, createdRepfp(h3, u), h2) = EQ, dominates(o, u) ==>) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + + // ============================================ + // Complement Rules (for accessible) + // ============================================ + + \lemma + dismissSelectOfSelfRepfpComplementAnon { + \schemaVar \term Heap h, h2; + \schemaVar \term Object o; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE ==>) + \find(alpha::select(anon(h, setMinus(allLocs, repfp(o)), h2), o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfSelfCreatedRepfpComplementAnon { + \schemaVar \term Heap h, h2, h3; + \schemaVar \term Object o; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE, boolean::select(h3, o, java.lang.Object::) = TRUE ==>) + \find(alpha::select(anon(h, setMinus(allLocs, createdRepfp(h3, o)), h2), o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfDominatingRepfpComplementAnon { + \schemaVar \term Heap h, h2; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE, dominates(u, o) ==>) + \find(alpha::select(anon(h, setMinus(allLocs, repfp(u)), h2), o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfDominatingCreatedRepfpComplementAnon { + \schemaVar \term Heap h, h2, h3; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE, boolean::select(h3, o, java.lang.Object::) = TRUE, dominates(u, o) ==>) + \find(alpha::select(anon(h, setMinus(allLocs, createdRepfp(h3, u)), h2), o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + + // ------------------------------------- + // EQ rules + + \lemma + dismissSelectOfSelfRepfpComplementAnonEQ { + \schemaVar \term Heap h, h2, EQ; + \schemaVar \term Object o; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE, anon(h, setMinus(allLocs, repfp(o)), h2) = EQ ==>) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfSelfCreatedRepfpComplementAnonEQ { + \schemaVar \term Heap h, h2, h3, EQ; + \schemaVar \term Object o; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE, boolean::select(h3, o, java.lang.Object::) = TRUE, anon(h, setMinus(allLocs, createdRepfp(h3, o)), h2) = EQ ==>) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfDominatingRepfpComplementAnonEQ { + \schemaVar \term Heap h, h2, EQ; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE, dominates(u, o), anon(h, setMinus(allLocs, repfp(u)), h2) = EQ ==>) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + + \lemma + dismissSelectOfDominatingCreatedRepfpComplementAnonEQ { + \schemaVar \term Heap h, h2, h3, EQ; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(boolean::select(h, o, java.lang.Object::) = TRUE, boolean::select(h3, o, java.lang.Object::) = TRUE, dominates(u, o), anon(h, setMinus(allLocs, createdRepfp(h3, u)), h2) = EQ ==>) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(alpha::select(h, o, f)) + \heuristics(simplify) + }; + +// ======================================================== +// == == +// == Simplify Rules == +// == -------------- == +// ======================================================== + + + // =============================== + // Normal Variant + // =============================== + + \lemma + simplifySelectOfDominatedAnon { + \schemaVar \term Heap h, h2; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(dominates(o, u) ==> o = null) + \find(alpha::select(anon(h, repfp(u), h2), o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; + + \lemma + simplifySelectOfDominatedCreatedAnon { + \schemaVar \term Heap h, h2, h3; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(dominates(o, u) ==> o = null) + \find(alpha::select(anon(h, createdRepfp(h3, u), h2), o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; + + // -------------------------------------------- + // EQ Rules + + \lemma + simplifySelectOfDominatedAnonEQ { + \schemaVar \term Heap h, h2, EQ; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(anon(h, repfp(u), h2) = EQ, dominates(o, u) ==> o = null) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; + + \lemma + simplifySelectOfDominatedCreatedAnonEQ { + \schemaVar \term Heap h, h2, h3, EQ; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(anon(h, createdRepfp(h3, u), h2) = EQ, dominates(o, u) ==> o = null) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; + + // ============================================ + // Complement Rules (for accessible) + // ============================================ + + \lemma + simplifySelectOfSelfRepfpComplementAnon { + \schemaVar \term Heap h, h2; + \schemaVar \term Object o; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(==> o = null) + + \find(alpha::select(anon(h, setMinus(allLocs, repfp(o)), h2), o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; + + \lemma + simplifySelectOfSelfRepfpComplementAnonEQ { + \schemaVar \term Heap h, h2, EQ; + \schemaVar \term Object o; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(anon(h, setMinus(allLocs, repfp(o)), h2) = EQ ==> o = null) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; + + \lemma + simplifySelectOfSelfCreatedRepfpComplementAnon { + \schemaVar \term Heap h, h2, h3; + \schemaVar \term Object o; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(==> o = null) + \find(alpha::select(anon(h, setMinus(allLocs, createdRepfp(h3, o)), h2), o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE & + (boolean::select(h3, o, java.lang.Object::) = TRUE | f = java.lang.Object::)) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; + + \lemma + simplifySelectOfSelfCreatedRepfpComplementAnonEQ { + \schemaVar \term Heap h, h2, h3, EQ; + \schemaVar \term Object o; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(anon(h, setMinus(allLocs, createdRepfp(h3, o)), h2) = EQ ==> o = null) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE & + (boolean::select(h3, o, java.lang.Object::) = TRUE | f = java.lang.Object::)) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; + + \lemma + simplifySelectOfDominatingRepfpComplementAnon { + \schemaVar \term Heap h, h2; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(dominates(u, o) ==> o = null) + \find(alpha::select(anon(h, setMinus(allLocs, repfp(u)), h2), o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; + + \lemma + simplifySelectOfDominatingRepfpComplementAnonEQ { + \schemaVar \term Heap h, h2, EQ; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(dominates(u, o), anon(h, setMinus(allLocs, repfp(u)), h2) = EQ ==> o = null) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; + + \lemma + simplifySelectOfDominatingCreatedRepfpComplementAnon { + \schemaVar \term Heap h, h2, h3; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(dominates(u, o) ==> o = null) + \find(alpha::select(anon(h, setMinus(allLocs, createdRepfp(h3, u)), h2), o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE & + (boolean::select(h3, o, java.lang.Object::) = TRUE | f = java.lang.Object::)) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; + + \lemma + simplifySelectOfDominatingCreatedRepfpComplementAnonEQ { + \schemaVar \term Heap h, h2, h3, EQ; + \schemaVar \term Object o, u; + \schemaVar \term Field f; + \schemaVar \term any x; + + \assumes(dominates(u, o), anon(h, setMinus(allLocs, createdRepfp(h3, u)), h2) = EQ ==> o = null) + \find(alpha::select(EQ, o, f)) + \sameUpdateLevel + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE & + (boolean::select(h3, o, java.lang.Object::) = TRUE | f = java.lang.Object::)) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + \heuristics(simplify_enlarging) + }; +} diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universeLemmas.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universeLemmas.key new file mode 100644 index 0000000000..f293f6f785 --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/universeLemmas.key @@ -0,0 +1,384 @@ +\rules(programRules:Java) { + // ------------------------- + // DominateDepth rules + // ------------------------- + + \lemma + dominatesDepthTransitive { + \schemaVar \term Object x, y, z; + \schemaVar \term int n1, n2; + + \assumes(dominatesDepth(x, y, n1) ==>) + \find(dominatesDepth(y, z, n2) ==>) + \add(dominatesDepth(x, z, n1 + n2) ==>) + }; + + \lemma + dominatesDepth2Dominates { + \schemaVar \term int n; + \schemaVar \term Object x, y; + + \find(dominatesDepth(x, y, n) ==>) + + \add(n > 0 & dominates(x, y) ==>) + }; + + \lemma + dominatesSameDepth { + \schemaVar \term Object x, y, z; + \schemaVar \term int n; + + \assumes(dominatesDepth(x, z, n) ==>) + \find(dominatesDepth(y, z, n) ==>) + \add(x = y ==>) + }; + + \lemma + dominatesLargerDepth { + \schemaVar \term Object x, y, z; + \schemaVar \term int n, m; + + \assumes(m > n, dominatesDepth(x, z, n) ==>) + \find(dominatesDepth(y, z, m) ==>) + \add(dominatesDepth(y, x, m - n) ==>) + }; + + \lemma + dominatesSingleDepth { + \schemaVar \term Object x, y, z; + \schemaVar \term int n; + \schemaVar \variables int m; + + \find(dominatesDepth(x, y, n) ==>) + + \varcond(\notFreeIn(m, n, x, y)) + \add(\forall m; (dominatesDepth(x, y, m) -> m = n) ==>) + }; + + // ------------------------- + // Dominate rules + // ------------------------- + + \lemma + dominatesTransitive { + \schemaVar \term Object x, y, z; + \assumes(dominates(x, y) ==>) + \find(dominates(y, z) ==>) + \add(dominates(x, z) ==>) + \heuristics(simplify_enlarging) + }; + + \lemma + dominatesNotEqual { + \schemaVar \term Object x, y; + + \assumes(dominates(x, y) ==>) + \find(x = y) + + \sameUpdateLevel + + \replacewith(false) + + \heuristics(concrete) + }; + + \lemma + dominatesNotEqualLeft { + \schemaVar \term Object x, y; + + \assumes(dominates(x, y) ==>) + \find(y = x) + + \sameUpdateLevel + + \replacewith(false) + + \heuristics(concrete) + \displayname "dominatesNotEqual" + }; + + \lemma + closePeerDominate { + \schemaVar \term Object x, y; + + \assumes(dominates(y, x) ==>) + \find(dominates(x, y) ==>) + \closegoal + \heuristics(closure) + }; + + \lemma + dominatesAntisymm { + \schemaVar \term Object x, y; + \find(dominates(x, y) ==>) + \add(==> x = y, dominates(y, x)) + }; + + \lemma + dominatesInverse { + \schemaVar \term Object x, y; + + \assumes(dominates(x, y) ==>) + + \find(dominates(y, x)) + + \sameUpdateLevel + + \replacewith(false) + \heuristics(concrete) + }; + + \lemma + dominatesNegTransitive { + \schemaVar \term Object x, y, z; + + \assumes(dominates(x, z) ==> dominates(x, y)) + \find(dominates(z, y)) + \sameUpdateLevel + \replacewith(false) + \heuristics(concrete) + }; + + \lemma + dominatesNegNotEqual { + \schemaVar \term Object x, y, z; + + \assumes(dominates(x, z) ==> dominates(x, y)) + \find(y = z) + \sameUpdateLevel + \replacewith(false) + \heuristics(concrete) + }; + + // ------------------------- + // Own rules + // ------------------------- + + \lemma + owns2Dominates { + \schemaVar \term Object x, y; + + \find(owner(y) = x ==>) + + \add(dominates(x, y) ==>) + \heuristics(simplify_enlarging) + }; + + \lemma + ownsSelf { + \schemaVar \term Object o; + + \find(owner(o) = o) + + \replacewith(false) + + \heuristics(concrete) + }; + + \lemma + closePeerOwn { + \schemaVar \term Object x, y; + + \assumes(owner(x) = y ==>) + \find(owner(y) = x ==>) + \closegoal + + \heuristics(closure) + }; + + // ------------------------- + // repfp rules + // ------------------------- + + \lemma + repfpElement { + \schemaVar \term Object x, y; + \schemaVar \term Field f; + + \find(elementOf(x, f, repfp(y))) + \replacewith(dominates(y, x) | x = y) + \heuristics(simplify) + }; + + \lemma + repfpSubset { + \schemaVar \term Object x, y; + + \assumes(dominates(x, y) ==>) + + \find(repfp(y)) + + \sameUpdateLevel + + \add(subset(repfp(y), repfp(x)) ==>) + \heuristics(inReachableStateImplication) + }; + + \lemma + repfpDisjointComplement { + \schemaVar \term Object x, y; + + \find(intersect(setMinus(allLocs, repfp(x)), repfp(y)) = empty) + + \replacewith(x = y | dominates(x, y)) + \heuristics(simplify) + }; + + // ------------------------- + // createdRepfp rules + // ------------------------- + + \lemma + createdRepfpDisjointComplementRepfp { + \schemaVar \term Object x, y; + \schemaVar \term Heap h; + + \assumes(boolean::select(h, y, java.lang.Object::) = TRUE ==>) + + \find(intersect(setMinus(allLocs, repfp(x)), createdRepfp(h, y)) = empty) + \sameUpdateLevel + + \replacewith(x = y | dominates(x, y)) + \heuristics(simplify) + }; + + \lemma + createdRepfpDisjointComplement { + \schemaVar \term Object x, y; + \schemaVar \term Heap h; + + \assumes(boolean::select(h, x, java.lang.Object::) = TRUE, boolean::select(h, y, java.lang.Object::) = TRUE ==>) + \find(intersect(setMinus(allLocs, createdRepfp(h, x)), createdRepfp(h, y)) = empty) + \sameUpdateLevel + + \replacewith(x = y | dominates(x, y)) + \heuristics(simplify) + }; + + \lemma + createdRepfpElement { + \schemaVar \term Object x, y; + \schemaVar \term Heap h; + \schemaVar \term Field f; + + \find(elementOf(x, f, createdRepfp(h, y))) + \replacewith((dominates(y, x) | x = y) & boolean::select(h, x, java.lang.Object::) = TRUE) + \heuristics(simplify) + }; + + // ------------------------- + // Undom rules + // ------------------------- + + \lemma + undomSymm { + \schemaVar \term Object commEqLeft, commEqRight; + + \find(undom(commEqLeft, commEqRight)) + + \replacewith(undom(commEqLeft, commEqRight)) + \heuristics(order_terms) + }; + + \lemma + sameLevelUndom { + \schemaVar \term Object o, x, y; + + \assumes(owner(x) = o, owner(y) = o ==>) + \find(==> x = y) + + \add(undom(x, y) ==>) + \heuristics(simplify_enlarging) + }; + + \lemma + dominatesSameNotUndom { + \schemaVar \term Object x, y, z; + + \assumes(dominates(x, z) ==>) + \find(dominates(y, z) ==>) + + \add(==> undom(x, y)) + \heuristics(inReachableStateImplication) + }; + + \lemma + undomTransitive { + \schemaVar \term Object x, y, z; + + \assumes(dominates(y, z) ==>) + \find(undom(x, y) ==>) + + \add(undom(x, z) ==>) + + \heuristics(simplify_enlarging) + }; + + \lemma + undomNotDominates { + \schemaVar \term Object x, y; + + \assumes(undom(x, y) ==>) + \find(dominates(x, y)) + \sameUpdateLevel + \replacewith(false) + \heuristics(concrete) + }; + + \lemma + undomNotDominatesInv { + \schemaVar \term Object x, y; + + \assumes(undom(x, y) ==>) + \find(dominates(y, x)) + \sameUpdateLevel + \replacewith(false) + \heuristics(concrete) + \displayname "undomDominates" + }; + + \lemma + undomNotEqual { + \schemaVar \term Object x, y; + \assumes(undom(x, y) ==>) + \find(x = y) + \sameUpdateLevel + \replacewith(false) + \heuristics(concrete) + }; + + \lemma + undomDisjointRepfp { + \schemaVar \term Object x, y; + \assumes(undom(x, y) ==>) + \find(intersect(repfp(x), repfp(y))) + \sameUpdateLevel + \replacewith(empty) + \heuristics(concrete) + }; + + \lemma + undomDisjointCreatedRepfp { + \schemaVar \term Object x, y; + \schemaVar \term Heap h1, h2; + + \assumes(undom(x, y) ==>) + \find(intersect(createdRepfp(h1, x), createdRepfp(h2, y))) + \sameUpdateLevel + \replacewith(empty) + \heuristics(concrete) + }; + + \lemma + undomDisjointCreatedRepfpInv { + \schemaVar \term Object x, y; + \schemaVar \term Heap h1, h2; + + \assumes(undom(y, x) ==>) + \find(intersect(createdRepfp(h1, x), createdRepfp(h2, y))) + \sameUpdateLevel + \replacewith(empty) + \heuristics(concrete) + \displayname "undomDisjointCreatedRepfp" + }; +} diff --git a/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/various.key b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/various.key new file mode 100644 index 0000000000..c58c53596c --- /dev/null +++ b/key.core/src/main/resources/de/uka/ilkd/key/proof/rules/various.key @@ -0,0 +1,124 @@ +\rules(programRules:Java) { + \lemma + variousSeqConcatAssociative { + \schemaVar \term Seq a, b, c; + + \find(seqConcat(seqConcat(a, b), c)) + + \replacewith(seqConcat(a, seqConcat(b, c))) + + \heuristics(simplify) + }; + + \lemma + variousDisjointComplement { + \schemaVar \term LocSet x, y; + + \find(disjoint(setMinus(allLocs, x), y)) + + \replacewith(subset(y, x)) + + \heuristics(simplify) + }; + + \lemma + variousReferencedObjectIsCreated { + \schemaVar \term Heap h; + \schemaVar \term Object o; + \schemaVar \term Field f; + + \assumes(wellFormed(h) ==> deltaObject::select(h, o, f) = null) + \find(boolean::select(h, + deltaObject::select(h, o, f), + java.lang.Object::) = TRUE) + + \inSequentState + + \replacewith(true) + + \heuristics(concrete) + }; + + \lemma + variousSelectOfEmptyAnonEQ { + \schemaVar \term Heap h, h2, EQ; + \schemaVar \term Object o; + \schemaVar \term Field f; + + \assumes(anon(h, empty, h2) = EQ ==> o = null) + \find(alpha::select(EQ, o, f)) + + \inSequentState + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + + \heuristics(simplify_enlarging) + }; + + \lemma + variousSelectOfEmptyAnon { + \schemaVar \term Heap h, h2; + \schemaVar \term Object o; + \schemaVar \term Field f; + + \assumes(==> o = null) + \find(alpha::select(anon(h, empty, h2), o, f)) + + \inSequentState + + \replacewith(\if(boolean::select(h, o, java.lang.Object::) = TRUE) + \then(alpha::select(h, o, f)) + \else(alpha::select(h2, o, f))) + + \heuristics(simplify_enlarging) + }; + + \lemma + variousDisjointUnion { + \schemaVar \term LocSet x, y, z; + + \find(disjoint(x, union(y, z))) + + \replacewith(disjoint(x, y) & disjoint(x, z)) + + \heuristics(simplify_enlarging) + }; + + \lemma + variousDisjointUnionInverse { + \schemaVar \term LocSet x, y, z; + + \find(disjoint(union(y, z), x)) + + \replacewith(disjoint(x, y) & disjoint(x, z)) + + \heuristics(simplify_enlarging) + \displayname "variousDisjointUnion" + }; + + \lemma + variousDisjointSingleton { + \schemaVar \term Object x; + \schemaVar \term Field f; + \schemaVar \term LocSet s; + + \find(disjoint(s, singleton(x, f))) + \replacewith(!elementOf(x, f, s)) + \heuristics(simplify) + }; + + \lemma + variousDisjointSingletonInverse { + \schemaVar \term Object x; + \schemaVar \term Field f; + \schemaVar \term LocSet s; + + \find(disjoint(singleton(x, f), s)) + \replacewith(!elementOf(x, f, s)) + \heuristics(simplify) + + \displayname "variousDisjointSingleton" + }; +} diff --git a/key.core/tacletProofs/universe/Taclet_closePeerDominate.proof b/key.core/tacletProofs/universe/Taclet_closePeerDominate.proof new file mode 100644 index 0000000000..0f29db6278 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_closePeerDominate.proof @@ -0,0 +1,99 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "closePeerDominate", + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "3") + +(branch "dummy ID" +(rule "orRight" (formula "1") (newnames "f_x,f_y")) +(rule "notRight" (formula "1")) +(rule "notRight" (formula "2")) +(rule "dominatesTransitive" (formula "1") (ifseqformula "2") (userinteraction)) +(rule "dominatesSelf" (formula "1") (userinteraction)) +(rule "closeFalse" (formula "1") (userinteraction)) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_closePeerOwn.proof b/key.core/tacletProofs/universe/Taclet_closePeerOwn.proof new file mode 100644 index 0000000000..c7fe71ab83 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_closePeerOwn.proof @@ -0,0 +1,99 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "closePeerOwn", + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "4") + +(branch "dummy ID" +(rule "orRight" (formula "1") (newnames "f_x,f_y")) +(rule "notRight" (formula "1")) +(rule "notRight" (formula "2")) +(rule "owns2Dominates" (formula "1") (userinteraction)) +(rule "owns2Dominates" (formula "3") (userinteraction)) +(rule "closePeerDominate" (formula "3") (ifseqformula "1") (userinteraction)) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_createdRepfpDisjointComplement.proof b/key.core/tacletProofs/universe/Taclet_createdRepfpDisjointComplement.proof new file mode 100644 index 0000000000..e3385bc497 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_createdRepfpDisjointComplement.proof @@ -0,0 +1,182 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "createdRepfpDisjointComplement" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "232") + +(branch "dummy ID" +(rule "createdRepfpDef" (formula "1") (term "1,0,0,0,0,0") (inst "y=y") (userinteraction)) +(rule "createdRepfpDef" (formula "1") (term "1,0,0,0,0") (inst "y=y") (userinteraction)) +(rule "equalityToElementOf" (formula "1") (term "0,0,0") (inst "ov=ov") (inst "fv=fv") (userinteraction)) + (builtin "One Step Simplification" (formula "1")) +(rule "impRight" (formula "1")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "3") (term "0,1")) +(rule "elementOfIntersect" (formula "3") (term "0,0,0,0")) +(rule "elementOfSetMinus" (formula "3") (term "0,0,0,0,0")) + (builtin "One Step Simplification" (formula "3")) +(rule "elementOfIntersect" (formula "3") (term "0,0,0,0,0,0")) +(rule "repfpElement" (formula "3") (term "1,0,0,0,0,0,0")) +(rule "elementOfInfiniteUnion" (formula "3") (term "0,0,0,0,0,0,0")) + (builtin "One Step Simplification" (formula "3")) +(rule "elementOfIntersect" (formula "3") (term "1,0,0,0,0")) +(rule "repfpElement" (formula "3") (term "1,1,0,0,0,0")) +(rule "elementOfInfiniteUnion" (formula "3") (term "0,1,0,0,0,0")) + (builtin "One Step Simplification" (formula "3")) +(rule "pullOutSelect" (formula "1") (term "0") (inst "selectSK=java_lang_Object_created__0")) +(rule "applyEqRigid" (formula "1") (term "1") (ifseqformula "2")) +(rule "pullOutSelect" (formula "3") (term "0") (inst "selectSK=java_lang_Object_created__1")) +(rule "applyEq" (formula "3") (term "1") (ifseqformula "4")) +(rule "hideAuxiliaryEqConcrete" (formula "2")) +(rule "hideAuxiliaryEqConcrete" (formula "3")) +(rule "nnf_notAnd" (formula "3") (term "0,0")) + (builtin "One Step Simplification" (formula "3")) +(rule "nnf_notAnd" (formula "3") (term "1,0,0")) +(rule "nnf_notOr" (formula "3") (term "1,1,0,0")) +(rule "commute_or" (formula "3") (term "1")) +(rule "equiv_right" (formula "3")) +(branch "Case '->'" + (rule "orRight" (formula "4")) + (rule "cnf_rightDist" (formula "1") (term "1,0")) + (rule "commute_or" (formula "1") (term "0,1,0")) + (rule "cnf_rightDist" (formula "1") (term "0")) + (rule "distr_forallAnd" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "commute_or" (formula "1") (term "0")) + (rule "commute_or" (formula "2") (term "0,0")) + (rule "cnf_rightDist" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "shift_paren_or" (formula "1") (term "0")) + (rule "commute_or_2" (formula "1") (term "0,0")) + (rule "cnf_rightDist" (formula "2") (term "0")) + (rule "distr_forallAnd" (formula "2")) + (rule "andLeft" (formula "2")) + (rule "commute_or_2" (formula "2") (term "0")) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "shift_paren_or" (formula "2") (term "0")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "5")) (ifInst "" (formula "6")) (ifInst "" (formula "4"))) + (rule "closeFalse" (formula "2")) +) +(branch "Case '<-'" + (rule "allRight" (formula "4") (inst "sk=ov_0")) + (rule "orRight" (formula "4")) + (rule "orRight" (formula "5")) + (rule "notRight" (formula "5")) + (rule "replace_known_left" (formula "5") (term "0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "5")) + (rule "orRight" (formula "5")) + (rule "pullOutSelect" (formula "1") (term "0") (inst "selectSK=java_lang_Object_created__2")) + (rule "applyEq" (formula "1") (term "1") (ifseqformula "2")) + (rule "hideAuxiliaryEqConcrete" (formula "2")) + (rule "cut_direct" (formula "2") (term "1")) + (branch "CUT: f_y = f_x TRUE" + (builtin "One Step Simplification" (formula "3")) + (rule "true_left" (formula "3")) + (rule "applyEqRigid" (formula "7") (term "1,0,1") (ifseqformula "2")) + (rule "replace_known_right" (formula "7") (term "0,1") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "7")) + (rule "notRight" (formula "7")) + (rule "applyEq" (formula "5") (term "1,0") (ifseqformula "3")) + (rule "applyEqRigid" (formula "1") (term "0") (ifseqformula "3")) + (rule "close" (formula "5") (ifseqformula "1")) + ) + (branch "CUT: f_y = f_x FALSE" + (builtin "One Step Simplification" (formula "2")) + (rule "dominatesNegTransitive" (formula "8") (term "0,0") (ifseqformula "2") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "8")) + (rule "notRight" (formula "8")) + (rule "dominatesNotEqualLeft" (formula "6") (ifseqformula "3")) + (rule "false_right" (formula "6")) + (rule "dominatesNegNotEqual" (formula "1") (ifseqformula "3") (ifseqformula "6")) + (rule "closeFalse" (formula "1")) + ) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_createdRepfpDisjointComplementRepfp.proof b/key.core/tacletProofs/universe/Taclet_createdRepfpDisjointComplementRepfp.proof new file mode 100644 index 0000000000..00dda7fdea --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_createdRepfpDisjointComplementRepfp.proof @@ -0,0 +1,164 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "createdRepfpDisjointComplementRepfp" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "463") + +(branch "dummy ID" +(rule "equalityToElementOf" (formula "1") (term "0,0,0") (inst "ov=ov") (inst "fv=fv") (userinteraction)) +(rule "createdRepfpDef" (formula "1") (term "1,2,0,0,0,0,0,0") (inst "y=y") (userinteraction)) + (builtin "One Step Simplification" (formula "1")) +(rule "impRight" (formula "1")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "eqSymm" (formula "2") (term "0,1")) +(rule "elementOfIntersect" (formula "2") (term "0,0,0,0")) +(rule "elementOfSetMinus" (formula "2") (term "0,0,0,0,0")) + (builtin "One Step Simplification" (formula "2")) +(rule "repfpElement" (formula "2") (term "0,0,0,0,0,0")) +(rule "elementOfIntersect" (formula "2") (term "1,0,0,0,0")) +(rule "elementOfInfiniteUnion" (formula "2") (term "0,1,0,0,0,0")) + (builtin "One Step Simplification" (formula "2")) +(rule "repfpElement" (formula "2") (term "1,1,0,0,0,0")) + (builtin "One Step Simplification" (formula "2")) +(rule "pullOutSelect" (formula "1") (term "0") (inst "selectSK=java_lang_Object_created__0")) +(rule "applyEqRigid" (formula "1") (term "1") (ifseqformula "2")) +(rule "hideAuxiliaryEqConcrete" (formula "2")) +(rule "nnf_notAnd" (formula "2") (term "0,0")) + (builtin "One Step Simplification" (formula "2")) +(rule "nnf_notAnd" (formula "2") (term "1,0,0")) +(rule "nnf_notOr" (formula "2") (term "1,1,0,0")) +(rule "commute_or" (formula "2") (term "1")) +(rule "equiv_right" (formula "2")) +(branch "Case '->'" + (rule "orRight" (formula "3")) + (rule "cnf_rightDist" (formula "1") (term "1,0")) + (rule "commute_or" (formula "1") (term "0,1,0")) + (rule "cnf_rightDist" (formula "1") (term "0")) + (rule "distr_forallAnd" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "commute_or_2" (formula "2") (term "0")) + (rule "shift_paren_or" (formula "1") (term "0")) + (rule "commute_or" (formula "2") (term "0,0")) + (rule "commute_or_2" (formula "2") (term "0")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "4")) (ifInst "" (formula "5")) (ifInst "" (formula "3"))) + (rule "closeFalse" (formula "2")) +) +(branch "Case '<-'" + (rule "allRight" (formula "3") (inst "sk=ov_0")) + (rule "orRight" (formula "3")) + (rule "orRight" (formula "4")) + (rule "orRight" (formula "3")) + (rule "notRight" (formula "5")) + (rule "pullOutSelect" (formula "1") (term "0") (inst "selectSK=java_lang_Object_created__1")) + (rule "applyEqRigid" (formula "1") (term "1") (ifseqformula "2")) + (rule "hideAuxiliaryEqConcrete" (formula "2")) + (rule "cut_direct" (formula "2") (term "1")) + (branch "CUT: f_y = f_x TRUE" + (builtin "One Step Simplification" (formula "3")) + (rule "true_left" (formula "3")) + (rule "applyEq" (formula "6") (term "1,0,1") (ifseqformula "2")) + (rule "replace_known_right" (formula "6") (term "0,1") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "6")) + (rule "notRight" (formula "6")) + (rule "applyEqRigid" (formula "4") (term "1,0") (ifseqformula "3")) + (rule "applyEqRigid" (formula "1") (term "0") (ifseqformula "3")) + (rule "close" (formula "5") (ifseqformula "1")) + ) + (branch "CUT: f_y = f_x FALSE" + (builtin "One Step Simplification" (formula "2")) + (rule "dominatesNegTransitive" (formula "7") (term "0,0") (ifseqformula "2") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "7")) + (rule "notRight" (formula "7")) + (rule "dominatesNotEqualLeft" (formula "5") (ifseqformula "3")) + (rule "false_right" (formula "5")) + (rule "dominatesNegNotEqual" (formula "1") (ifseqformula "3") (ifseqformula "5")) + (rule "closeFalse" (formula "1")) + ) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_createdRepfpElement.proof b/key.core/tacletProofs/universe/Taclet_createdRepfpElement.proof new file mode 100644 index 0000000000..8abd6e0669 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_createdRepfpElement.proof @@ -0,0 +1,101 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "createdRepfpElement" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "0") + +(branch "dummy ID" +(rule "createdRepfpDef" (formula "1") (term "2,0") (newnames "f_x,f_f,f_h,f_y") (inst "y=y") (userinteraction)) +(rule "elementOfIntersect" (formula "1") (term "0") (userinteraction)) +(rule "elementOfInfiniteUnion" (formula "1") (term "0,0") (userinteraction)) + (builtin "One Step Simplification" (formula "1") (userinteraction)) +(rule "repfpElement" (formula "1") (term "1,0") (userinteraction)) +(rule "commute_and" (formula "1") (term "0") (userinteraction)) + (builtin "One Step Simplification" (formula "1") (userinteraction)) +(rule "closeTrue" (formula "1") (userinteraction)) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedAnon.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedAnon.proof new file mode 100644 index 0000000000..62603640d6 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedAnon.proof @@ -0,0 +1,108 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatedAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "49") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_u,f_h2,f_o,f_f")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "pullOutSelect" (formula "3") (term "0") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) +(rule "eqSymm" (formula "4")) +(rule "repfpElement" (formula "1") (term "0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0")) +(rule "dominatesNotEqualLeft" (formula "1") (term "1,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1")) +(rule "dominatesInverse" (formula "1") (term "0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "4"))) +(rule "closeFalse" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedAnonEQ.proof new file mode 100644 index 0000000000..c88b5d2db3 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedAnonEQ.proof @@ -0,0 +1,111 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatedAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "35") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_o,f_f,f_h,f_u,f_h2")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "4")) +(rule "pullOutSelect" (formula "1") (term "0") (inst "selectSK=java_lang_Object_created__0")) +(rule "applyEq" (formula "1") (term "1") (ifseqformula "2")) +(rule "pullOutSelect" (formula "5") (term "1") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) +(rule "repfpElement" (formula "1") (term "0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0")) +(rule "dominatesInverse" (formula "1") (term "0,0,0,0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "1")) +(rule "dominatesNotEqualLeft" (formula "1") (term "0,0,0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "6"))) +(rule "closeFalse" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedCreatedAnon.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedCreatedAnon.proof new file mode 100644 index 0000000000..f2f1458814 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedCreatedAnon.proof @@ -0,0 +1,108 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatedCreatedAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "92") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_h3,f_u,f_h2,f_o,f_f")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "pullOutSelect" (formula "3") (term "0") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) +(rule "eqSymm" (formula "4")) +(rule "createdRepfpElement" (formula "1") (term "0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0")) +(rule "dominatesNotEqualLeft" (formula "1") (term "1,0,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1")) +(rule "dominatesInverse" (formula "1") (term "0,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "4"))) +(rule "closeFalse" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedCreatedAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedCreatedAnonEQ.proof new file mode 100644 index 0000000000..9e82a95a86 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedCreatedAnonEQ.proof @@ -0,0 +1,116 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatedCreatedAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "46") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_o,f_f,f_h,f_h3,f_u,f_h2")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "4")) +(rule "pullOutSelect" (formula "1") (term "0") (inst "selectSK=java_lang_Object_created__0")) +(rule "applyEq" (formula "1") (term "1") (ifseqformula "2")) +(rule "pullOutSelect" (formula "5") (term "0") (inst "selectSK=f_f_0")) +(rule "eqSymm" (formula "6")) +(rule "pullOutSelect" (formula "6") (term "0") (inst "selectSK=f_f_1")) +(rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3"))) +(rule "applyEq" (formula "1") (term "2,0") (ifseqformula "2")) +(rule "createdRepfpElement" (formula "1") (term "0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0")) +(rule "dominatesNotEqualLeft" (formula "1") (term "1,0,0,0,0") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "1")) +(rule "dominatesInverse" (formula "1") (term "0,0,0,0") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "1")) +(rule "applyEqReverse" (formula "7") (term "0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "7")) +(rule "closeTrue" (formula "7")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedObject.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedObject.proof new file mode 100644 index 0000000000..cb1f008706 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedObject.proof @@ -0,0 +1,107 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatedObject" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "12") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_o,f_f1,f_x,f_u,f_f2")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "pullOutSelect" (formula "2") (term "1") (inst "selectSK=f_f2_0")) +(rule "pullOutSelect" (formula "3") (term "0") (inst "selectSK=f_f2_1")) +(rule "simplifySelectOfStore" (formula "1")) +(rule "applyEq" (formula "1") (term "2,0") (ifseqformula "2")) +(rule "eqSymm" (formula "1") (term "1,0,0,0")) +(rule "eqSymm" (formula "1") (term "0,0,0,0")) +(rule "dominatesNotEqualLeft" (formula "1") (term "0,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1")) +(rule "applyEqReverse" (formula "4") (term "0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "4")) +(rule "closeTrue" (formula "4")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedObjectEQ.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedObjectEQ.proof new file mode 100644 index 0000000000..61408e265d --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatedObjectEQ.proof @@ -0,0 +1,105 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatedObjectEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "11") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_u,f_f2,f_h,f_o,f_f1,f_x")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "3")) +(rule "pullOutSelect" (formula "3") (term "1") (inst "selectSK=f_f2_0")) +(rule "simplifySelectOfStoreEQ" (formula "1") (ifseqformula "2")) +(rule "eqSymm" (formula "1") (term "0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0")) +(rule "dominatesNotEqualLeft" (formula "1") (term "0,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "4"))) +(rule "closeFalse" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingCreatedRepfpComplementAnon.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingCreatedRepfpComplementAnon.proof new file mode 100644 index 0000000000..d7db4c5519 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingCreatedRepfpComplementAnon.proof @@ -0,0 +1,113 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatingCreatedRepfpComplementAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "45") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_h3,f_u,f_h2,f_o,f_f")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "dominatesSameNotUndom" (formula "3") (ifseqformula "3")) +(rule "pullOutSelect" (formula "5") (term "1") (inst "selectSK=f_f_0")) +(rule "pullOutSelect" (formula "6") (term "0") (inst "selectSK=f_f_1")) +(rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3"))) +(rule "applyEq" (formula "1") (term "2,0") (ifseqformula "2")) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "createdRepfpElement" (formula "1") (term "0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0,0")) +(rule "replace_known_left" (formula "1") (term "1,0,0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "5"))) +(rule "applyEqReverse" (formula "7") (term "0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "7")) +(rule "closeTrue" (formula "7")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingCreatedRepfpComplementAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingCreatedRepfpComplementAnonEQ.proof new file mode 100644 index 0000000000..628c7f3453 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingCreatedRepfpComplementAnonEQ.proof @@ -0,0 +1,115 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatingCreatedRepfpComplementAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "99") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_o,f_f,f_h,f_h3,f_u,f_h2")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "5")) +(rule "dominatesSameNotUndom" (formula "3") (ifseqformula "3")) +(rule "pullOutSelect" (formula "1") (term "0") (inst "selectSK=java_lang_Object_created__0")) +(rule "applyEqRigid" (formula "1") (term "1") (ifseqformula "2")) +(rule "pullOutSelect" (formula "3") (term "0") (inst "selectSK=java_lang_Object_created__1")) +(rule "applyEq" (formula "3") (term "1") (ifseqformula "4")) +(rule "pullOutSelect" (formula "8") (term "1") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "createdRepfpElement" (formula "1") (term "0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0,0")) +(rule "replace_known_left" (formula "1") (term "1,0,0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "6")) (ifInst "" (formula "9"))) +(rule "closeFalse" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingObject.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingObject.proof new file mode 100644 index 0000000000..b145eaaaf8 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingObject.proof @@ -0,0 +1,104 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatingObject" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "11") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_o,f_f1,f_x,f_u,f_f2")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "pullOutSelect" (formula "2") (term "0") (inst "selectSK=f_f2_0")) +(rule "simplifySelectOfStore" (formula "1")) +(rule "eqSymm" (formula "3")) +(rule "eqSymm" (formula "1") (term "0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0")) +(rule "dominatesNotEqual" (formula "1") (term "0,0,0,0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3"))) +(rule "closeFalse" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingObjectEQ.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingObjectEQ.proof new file mode 100644 index 0000000000..75d7f05bcb --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingObjectEQ.proof @@ -0,0 +1,110 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatingObjectEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "13") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_u,f_f2,f_h,f_o,f_f1,f_x")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "3")) +(rule "pullOutSelect" (formula "3") (term "0") (inst "selectSK=f_f2_0")) +(rule "eqSymm" (formula "4")) +(rule "pullOutSelect" (formula "4") (term "0") (inst "selectSK=f_f2_1")) +(rule "simplifySelectOfStoreEQ" (formula "1") (ifseqformula "3")) +(rule "applyEq" (formula "1") (term "2,0") (ifseqformula "2")) +(rule "eqSymm" (formula "1") (term "1,0,0,0")) +(rule "eqSymm" (formula "1") (term "0,0,0,0")) +(rule "dominatesNotEqual" (formula "1") (term "0,0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1")) +(rule "applyEqReverse" (formula "5") (term "0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "5")) +(rule "closeTrue" (formula "5")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingRepfpComplementAnon.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingRepfpComplementAnon.proof new file mode 100644 index 0000000000..243001ac85 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingRepfpComplementAnon.proof @@ -0,0 +1,112 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatingRepfpComplementAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "36") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_u,f_h2,f_o,f_f")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "dominatesSameNotUndom" (formula "2") (ifseqformula "2")) +(rule "pullOutSelect" (formula "4") (term "1") (inst "selectSK=f_f_0")) +(rule "pullOutSelect" (formula "5") (term "0") (inst "selectSK=f_f_1")) +(rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3"))) +(rule "applyEq" (formula "1") (term "2,0") (ifseqformula "2")) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "repfpElement" (formula "1") (term "0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0")) +(rule "replace_known_left" (formula "1") (term "0,0,0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1")) +(rule "applyEqReverse" (formula "6") (term "0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "6")) +(rule "closeTrue" (formula "6")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingRepfpComplementAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingRepfpComplementAnonEQ.proof new file mode 100644 index 0000000000..ead572f5e3 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfDominatingRepfpComplementAnonEQ.proof @@ -0,0 +1,112 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfDominatingRepfpComplementAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "48") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_o,f_f,f_h,f_u,f_h2")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "4")) +(rule "dominatesSameNotUndom" (formula "2") (ifseqformula "2")) +(rule "pullOutSelect" (formula "1") (term "0") (inst "selectSK=java_lang_Object_created__0")) +(rule "applyEqRigid" (formula "1") (term "1") (ifseqformula "2")) +(rule "pullOutSelect" (formula "6") (term "1") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "repfpElement" (formula "1") (term "0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0")) +(rule "replace_known_left" (formula "1") (term "0,0,0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "7"))) +(rule "closeFalse" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfCreatedRepfpComplementAnon.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfCreatedRepfpComplementAnon.proof new file mode 100644 index 0000000000..bb1b59a4eb --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfCreatedRepfpComplementAnon.proof @@ -0,0 +1,106 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfSelfCreatedRepfpComplementAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "27") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_h3,f_o,f_h2,f_f")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "pullOutSelect" (formula "3") (term "0") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) +(rule "eqSymm" (formula "4")) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "createdRepfpElement" (formula "1") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3")) (ifInst "" (formula "4"))) +(rule "closeFalse" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfCreatedRepfpComplementAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfCreatedRepfpComplementAnonEQ.proof new file mode 100644 index 0000000000..1b6f2b9519 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfCreatedRepfpComplementAnonEQ.proof @@ -0,0 +1,116 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfSelfCreatedRepfpComplementAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "60") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_o,f_f,f_h,f_h3,f_h2")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "4")) +(rule "pullOutSelect" (formula "2") (term "0") (inst "selectSK=java_lang_Object_created__0")) +(rule "applyEq" (formula "2") (term "1") (ifseqformula "3")) +(rule "pullOutSelect" (formula "1") (term "0") (inst "selectSK=java_lang_Object_created__1")) +(rule "applyEqRigid" (formula "1") (term "1") (ifseqformula "2")) +(rule "pullOutSelect" (formula "6") (term "0") (inst "selectSK=f_f_0")) +(rule "eqSymm" (formula "7")) +(rule "pullOutSelect" (formula "7") (term "0") (inst "selectSK=f_f_1")) +(rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3"))) +(rule "applyEq" (formula "1") (term "2,0") (ifseqformula "2")) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "createdRepfpElement" (formula "1") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "5"))) +(rule "applyEqReverse" (formula "8") (term "0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "8")) +(rule "closeTrue" (formula "8")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfRepfpComplementAnon.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfRepfpComplementAnon.proof new file mode 100644 index 0000000000..4617a3cd05 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfRepfpComplementAnon.proof @@ -0,0 +1,106 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfSelfRepfpComplementAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) +(keyLog "1" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "26") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_o,f_h2,f_f")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "pullOutSelect" (formula "2") (term "0") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) +(rule "eqSymm" (formula "3")) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "repfpElement" (formula "1") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3"))) +(rule "closeFalse" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfRepfpComplementAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfRepfpComplementAnonEQ.proof new file mode 100644 index 0000000000..3bb902ccab --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dismissSelectOfSelfRepfpComplementAnonEQ.proof @@ -0,0 +1,108 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dismissSelectOfSelfRepfpComplementAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "37") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_o,f_f,f_h,f_h2")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "3")) +(rule "pullOutSelect" (formula "1") (term "0") (inst "selectSK=java_lang_Object_created__0")) +(rule "applyEq" (formula "1") (term "1") (ifseqformula "2")) +(rule "pullOutSelect" (formula "4") (term "1") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "2"))) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "repfpElement" (formula "1") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "5"))) +(rule "closeFalse" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesAntisymm.proof b/key.core/tacletProofs/universe/Taclet_dominatesAntisymm.proof new file mode 100644 index 0000000000..68328ec9e6 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesAntisymm.proof @@ -0,0 +1,104 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesAntisymm", + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "3") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_x,f_y")) +(rule "notRight" (formula "2")) +(rule "orLeft" (formula "2") (userinteraction)) +(branch "f_x = f_y" + (rule "applyEqRigid" (formula "1") (term "0") (ifseqformula "2") (userinteraction)) + (rule "dominatesSelf" (formula "1") (userinteraction)) + (rule "closeFalse" (formula "1") (userinteraction)) +) +(branch "dominates(f_y, f_x)" + (rule "closePeerDominate" (formula "2") (ifseqformula "1") (userinteraction)) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesDepth2Dominates.proof b/key.core/tacletProofs/universe/Taclet_dominatesDepth2Dominates.proof new file mode 100644 index 0000000000..2f8d800581 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesDepth2Dominates.proof @@ -0,0 +1,121 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesDepth2Dominates", + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "19") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_n,f_x,f_y")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "dominatesDef" (formula "2") (term "1") (inst "n=n") (userinteraction)) +(rule "commute_and" (formula "2") (userinteraction)) +(rule "andRight" (formula "2") (userinteraction)) +(branch "Case 1" + (rule "exRight" (formula "2") (inst "t=f_n") (userinteraction)) + (rule "close" (formula "2") (ifseqformula "1") (userinteraction)) +) +(branch "Case 2" + (rule "dominatesDepthDef" (formula "1") (inst "ov=ov") (userinteraction)) + (rule "ifthenelse_split_for" (formula "1") (userinteraction)) + (branch "f_n ≤ 0 TRUE" + (rule "closeFalse" (formula "2") (userinteraction)) + ) + (branch "f_n ≤ 0 FALSE" + (rule "eqSymm" (formula "1") (term "1")) + (rule "eqSymm" (formula "1") (term "0,0,2")) + (rule "polySimp_elimSub" (formula "1") (term "2,1,0,2")) + (rule "mul_literals" (formula "1") (term "1,2,1,0,2")) + (rule "polySimp_addComm0" (formula "1") (term "2,1,0,2")) + (rule "inEqSimp_gtRight" (formula "3")) + (rule "times_zero_1" (formula "1") (term "0,0")) + (rule "add_zero_left" (formula "1") (term "0")) + (rule "close" (formula "3") (ifseqformula "1")) + ) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesDepthTransitive.proof b/key.core/tacletProofs/universe/Taclet_dominatesDepthTransitive.proof new file mode 100644 index 0000000000..848f6fe2ee --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesDepthTransitive.proof @@ -0,0 +1,444 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesDepthTransitive", + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) +(keyLog "1" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "1215") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_x,f_z,f_n1,f_n2,f_y")) +(rule "orRight" (formula "2")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "notRight" (formula "3")) +(rule "int_induction" (inst "b=(\\forall java.lang.Object o; + (( ( dominatesDepth(o, f_y, f_n1)<> + & dominatesDepth(f_y, f_z, f_n2)<>)<> + -> dominatesDepth(o, f_z, add(f_n1, f_n2))<>)<>))<>") (inst "nv=f_n1") (userinteraction)) +(branch "Base Case" + (rule "allRight" (formula "3") (inst "sk=o_0") (userinteraction)) + (rule "dominatesDepthDef" (formula "3") (term "0,0") (inst "ov=ov") (userinteraction)) + (rule "dominatesDepthDef" (formula "3") (term "1") (inst "ov=ov") (userinteraction)) + (rule "impRight" (formula "3")) + (rule "add_zero_left" (formula "4") (term "0,0")) + (rule "add_zero_left" (formula "4") (term "0,0,2")) + (rule "add_zero_left" (formula "4") (term "0,2,1,0,2,2")) + (rule "leq_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3"))) + (rule "closeFalse" (formula "1")) +) +(branch "Step Case" + (rule "allRight" (formula "3") (inst "sk=f_n1_0") (userinteraction)) + (rule "impRight" (formula "3")) + (rule "andLeft" (formula "1")) + (rule "allRight" (formula "5") (inst "sk=o_0") (userinteraction)) + (rule "impRight" (formula "5")) + (rule "andLeft" (formula "1")) + (rule "dominatesDepthDef" (formula "1") (inst "ov=ov") (userinteraction)) + (rule "dominatesDepthDef" (formula "6") (inst "ov=ov") (userinteraction)) + (rule "ifthenelse_split_for" (formula "1") (userinteraction)) + (branch "f_n1_0 + 1 ≤ 0 TRUE" + (rule "closeFalse" (formula "2") (userinteraction)) + ) + (branch "f_n1_0 + 1 ≤ 0 FALSE" + (rule "dominatesDepthDef" (formula "5") (inst "ov=ov") (userinteraction)) + (rule "ifthenelse_split_for" (formula "7") (userinteraction)) + (branch "f_n1_0 + 1 + f_n2 ≤ 0 TRUE" + (rule "false_right" (formula "8")) + (rule "eqSymm" (formula "2") (term "1")) + (rule "eqSymm" (formula "2") (term "0,0,2")) + (rule "eqSymm" (formula "6") (term "1,2")) + (rule "eqSymm" (formula "6") (term "0,0,2,2")) + (rule "polySimp_elimSub" (formula "2") (term "2,1,0,2")) + (rule "mul_literals" (formula "2") (term "1,2,1,0,2")) + (rule "polySimp_addLiterals" (formula "2") (term "2,1,0,2")) + (rule "add_zero_right" (formula "2") (term "2,1,0,2")) + (rule "polySimp_elimSub" (formula "6") (term "2,1,0,2,2")) + (rule "mul_literals" (formula "6") (term "1,2,1,0,2,2")) + (rule "polySimp_homoEq" (formula "2") (term "0")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm0" (formula "7") (term "0")) + (rule "polySimp_addComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "6") (term "2,1,0,2,2")) + (rule "polySimp_addComm0" (formula "2") (term "1,1,0,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0,0")) + (rule "mul_literals" (formula "2") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0,0")) + (rule "add_literals" (formula "2") (term "0,0,0")) + (rule "add_zero_left" (formula "2") (term "0,0")) + (rule "inEqSimp_leqRight" (formula "7")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "add_zero_left" (formula "1") (term "0")) + (rule "polySimp_invertEq" (formula "2") (term "0")) + (rule "polySimp_mulLiterals" (formula "2") (term "0,0")) + (rule "times_zero_2" (formula "2") (term "1,0")) + (rule "polySimp_elimOne" (formula "2") (term "0,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "mul_literals" (formula "1") (term "0,1")) + (rule "nnf_imp2or" (formula "4") (term "0")) + (rule "nnf_notAnd" (formula "4") (term "0,0")) + (rule "commute_or_2" (formula "4") (term "0")) + (rule "cut_direct" (formula "4") (term "0,1,0")) + (branch "CUT: dominatesDepth(f_y, f_z, f_n2) TRUE" + (builtin "One Step Simplification" (formula "5")) + (rule "ifthenelse_split_for" (formula "7")) + (branch "f_n2 ≤ 0 TRUE" + (rule "closeFalse" (formula "8")) + ) + (branch "f_n2 ≤ 0 FALSE" + (rule "inEqSimp_leqRight" (formula "8")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "inEqSimp_exactShadow3" (formula "1") (ifseqformula "2")) + (rule "mul_literals" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_contradEq3" (formula "4") (term "0") (ifseqformula "1")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0,0")) + (rule "qeq_literals" (formula "4") (term "0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "exLeft" (formula "4") (inst "sk=ov_0")) + (rule "andLeft" (formula "4")) + (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "6")) + (rule "qeq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + (branch "CUT: dominatesDepth(f_y, f_z, f_n2) FALSE" + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "ifthenelse_split_for" (formula "5")) + (branch "f_n2 ≤ 0 TRUE" + (rule "closeFalse" (formula "6")) + ) + (branch "f_n2 ≤ 0 FALSE" + (rule "inEqSimp_leqRight" (formula "6")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "inEqSimp_exactShadow3" (formula "1") (ifseqformula "2")) + (rule "mul_literals" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_contradEq3" (formula "4") (term "0") (ifseqformula "1")) + (rule "times_zero_1" (formula "4") (term "1,0,0,0")) + (rule "add_zero_right" (formula "4") (term "0,0,0")) + (rule "qeq_literals" (formula "4") (term "0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "exLeft" (formula "4") (inst "sk=ov_0")) + (rule "andLeft" (formula "4")) + (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "6")) + (rule "qeq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + ) + (branch "f_n1_0 + 1 + f_n2 ≤ 0 FALSE" + (rule "polySimp_homoEq" (formula "1") (term "0")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) + (rule "polySimp_addComm0" (formula "1") (term "1,1,0,0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "mul_literals" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "polySimp_invertEq" (formula "1") (term "0")) + (rule "polySimp_mulLiterals" (formula "1") (term "0,0")) + (rule "mul_literals" (formula "1") (term "1,0")) + (rule "polySimp_elimOne" (formula "1") (term "0,0")) + (rule "polySimp_homoEq" (formula "8") (term "0")) + (rule "polySimp_mulComm0" (formula "8") (term "1,0,0")) + (rule "polySimp_rightDist" (formula "8") (term "1,0,0")) + (rule "polySimp_rightDist" (formula "8") (term "0,1,0,0")) + (rule "mul_literals" (formula "8") (term "1,0,1,0,0")) + (rule "polySimp_mulComm0" (formula "8") (term "0,0,1,0,0")) + (rule "polySimp_addComm0" (formula "8") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "8") (term "0,0")) + (rule "polySimp_elimSub" (formula "8") (term "2,1,0,2")) + (rule "polySimp_elimOneLeft0" (formula "8") (term "1,2,1,0,2")) + (rule "polySimp_addComm1" (formula "8") (term "2,1,0,2")) + (rule "polySimp_addLiterals" (formula "8") (term "0,2,1,0,2")) + (rule "add_zero_right" (formula "8") (term "0,2,1,0,2")) + (rule "ifthenelse_split_for" (formula "1") (userinteraction)) + (branch "f_n1_0 = 0 TRUE" + (rule "ifthenelse_split_for" (formula "9") (userinteraction)) + (branch "1 + (-1 + f_n1_0 * -1) + f_n2 * -1 = 0 TRUE" + (rule "eqSymm" (formula "7") (term "1,2")) + (rule "eqSymm" (formula "10")) + (rule "eqSymm" (formula "7") (term "0,0,2,2")) + (rule "eqSymm" (formula "3")) + (rule "polySimp_elimSub" (formula "7") (term "2,1,0,2,2")) + (rule "mul_literals" (formula "7") (term "1,2,1,0,2,2")) + (rule "polySimp_addComm0" (formula "9") (term "0,0")) + (rule "polySimp_addComm0" (formula "8") (term "0")) + (rule "polySimp_addComm0" (formula "7") (term "2,1,0,2,2")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_leqRight" (formula "9")) + (rule "mul_literals" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_leqRight" (formula "9")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "add_zero_left" (formula "1") (term "0")) + (rule "applyEqRigid" (formula "6") (term "2,0,0,0") (ifseqformula "3")) + (rule "applyEqRigid" (formula "5") (term "0") (ifseqformula "3")) + (rule "qeq_literals" (formula "5")) + (rule "true_left" (formula "5")) + (rule "applyEqRigid" (formula "1") (term "0,0") (ifseqformula "3")) + (rule "add_zero_left" (formula "1") (term "0")) + (rule "applyEq" (formula "5") (term "0,2,1,0") (ifseqformula "3")) + (rule "add_zero_left" (formula "5") (term "2,1,0")) + (rule "applyEq" (formula "2") (term "0,0,0") (ifseqformula "3")) + (rule "times_zero_2" (formula "2") (term "0,0")) + (rule "add_zero_left" (formula "2") (term "0")) + (rule "polySimp_invertEq" (formula "2")) + (rule "times_zero_2" (formula "2") (term "1")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "applyEq" (formula "5") (term "2,1,0") (ifseqformula "2")) + (rule "applyEqRigid" (formula "7") (term "0,0") (ifseqformula "2")) + (rule "leq_literals" (formula "7") (term "0")) + (builtin "One Step Simplification" (formula "7")) + (rule "closeFalse" (formula "7")) + ) + (branch "1 + (-1 + f_n1_0 * -1) + f_n2 * -1 = 0 FALSE" + (rule "exRight" (formula "10") (inst "t=f_y") (userinteraction)) + (rule "replace_known_left" (formula "10") (term "0") (ifseqformula "2") (userinteraction)) + (builtin "One Step Simplification" (formula "10") (userinteraction)) + (rule "applyEqRigid" (formula "10") (term "0,2") (ifseqformula "1") (userinteraction)) + (rule "add_zero_left" (formula "10") (term "2") (userinteraction)) + (rule "dominatesDepthDef" (formula "10") (inst "ov=ov") (userinteraction)) + (rule "close" (formula "10") (ifseqformula "6") (userinteraction)) + ) + ) + (branch "f_n1_0 = 0 FALSE" + (rule "exLeft" (formula "1") (inst "sk=ov_0") (userinteraction)) + (rule "andLeft" (formula "1") (userinteraction)) + (rule "polySimp_elimSub" (formula "2") (term "2")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "2")) + (rule "polySimp_elimOneLeft0" (formula "2") (term "1,2")) + (rule "polySimp_addComm0" (formula "2") (term "2")) + (rule "add_literals" (formula "2") (term "0,2") (userinteraction)) + (rule "add_zero_left" (formula "2") (term "2") (userinteraction)) + (rule "ifthenelse_split_for" (formula "10") (userinteraction)) + (branch "1 + (-1 + f_n1_0 * -1) + f_n2 * -1 = 0 TRUE" + (rule "eqSymm" (formula "11")) + (rule "eqSymm" (formula "7") (term "1,2")) + (rule "eqSymm" (formula "7") (term "0,0,2,2")) + (rule "eqSymm" (formula "2")) + (rule "polySimp_elimSub" (formula "7") (term "2,1,0,2,2")) + (rule "mul_literals" (formula "7") (term "1,2,1,0,2,2")) + (rule "polySimp_addComm0" (formula "9") (term "0")) + (rule "polySimp_addComm0" (formula "10") (term "0,0")) + (rule "polySimp_addComm0" (formula "7") (term "2,1,0,2,2")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_leqRight" (formula "9")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "add_zero_left" (formula "1") (term "0")) + (rule "inEqSimp_leqRight" (formula "9")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "polySimp_sepNegMonomial" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "applyEq" (formula "8") (term "0,0") (ifseqformula "2")) + (rule "applyEq" (formula "6") (term "2,1,0,0") (ifseqformula "2")) + (rule "applyEq" (formula "11") (term "1,2") (ifseqformula "2")) + (rule "applyEq" (formula "6") (term "1,2,1,0") (ifseqformula "2")) + (rule "polySimp_pullOutFactor1" (formula "6") (term "2,1,0")) + (rule "add_literals" (formula "6") (term "1,2,1,0")) + (rule "times_zero_1" (formula "6") (term "2,1,0")) + (rule "applyEqRigid" (formula "1") (term "1,0") (ifseqformula "2")) + (rule "polySimp_pullOutFactor1" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,0")) + (rule "times_zero_1" (formula "1") (term "0")) + (rule "qeq_literals" (formula "1")) + (rule "true_left" (formula "1")) + (rule "applyEq" (formula "7") (term "1,2,1,0,2,2") (ifseqformula "1")) + (rule "applyEq" (formula "7") (term "0,0,2") (ifseqformula "1")) + (rule "polySimp_homoEq" (formula "7") (term "0,2")) + (rule "polySimp_mulLiterals" (formula "7") (term "1,0,0,2")) + (rule "polySimp_elimOne" (formula "7") (term "1,0,0,2")) + (rule "polySimp_sepPosMonomial" (formula "7") (term "0,2")) + (rule "mul_literals" (formula "7") (term "1,0,2")) + (rule "inEqSimp_invertInEq0" (formula "7") (term "0")) + (rule "times_zero_2" (formula "7") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "7") (term "0,0")) + (rule "polySimp_elimOne" (formula "7") (term "0,0")) + (rule "replace_known_left" (formula "7") (term "0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "7")) + (rule "closeFalse" (formula "7")) + ) + (branch "1 + (-1 + f_n1_0 * -1) + f_n2 * -1 = 0 FALSE" + (rule "exRight" (formula "11") (inst "t=ov_0") (userinteraction)) + (rule "replace_known_left" (formula "11") (term "0") (ifseqformula "1") (userinteraction)) + (builtin "One Step Simplification" (formula "11") (userinteraction)) + (rule "allLeft" (formula "4") (inst "t=ov_0") (userinteraction)) + (rule "replace_known_left" (formula "4") (term "0,0") (ifseqformula "2") (userinteraction)) + (rule "replace_known_right" (formula "4") (term "1") (ifseqformula "12") (userinteraction)) + (builtin "One Step Simplification" (formula "4") (userinteraction)) + (rule "notLeft" (formula "4") (userinteraction)) + (rule "dominatesDepthDef" (formula "7") (inst "ov=ov") (userinteraction)) + (rule "close" (formula "7") (ifseqformula "6") (userinteraction)) + ) + ) + ) + ) +) +(branch "Use Case" + (rule "allLeft" (formula "1") (inst "t=f_n1") (userinteraction)) + (rule "impLeft" (formula "1") (userinteraction)) + (branch "Case 1" + (rule "dominatesDepthDef" (formula "2") (inst "ov=ov") (userinteraction)) + (rule "eqSymm" (formula "2") (term "1,2")) + (rule "eqSymm" (formula "2") (term "0,0,2,2")) + (rule "replace_known_left" (formula "1") (term "1,0,0,1,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1")) + (rule "polySimp_elimSub" (formula "2") (term "2,1,0,2,2")) + (rule "mul_literals" (formula "2") (term "1,2,1,0,2,2")) + (rule "polySimp_addComm0" (formula "1") (term "2,1,0,1,0")) + (rule "polySimp_addComm0" (formula "2") (term "2,1,0,2,2")) + (rule "inEqSimp_geqRight" (formula "4")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "inEqSimp_contradEq3" (formula "3") (term "0,2") (ifseqformula "1")) + (rule "mul_literals" (formula "3") (term "1,0,0,0,2")) + (rule "add_literals" (formula "3") (term "0,0,0,2")) + (rule "qeq_literals" (formula "3") (term "0,0,2")) + (builtin "One Step Simplification" (formula "3")) + (rule "inEqSimp_subsumption0" (formula "3") (term "0") (ifseqformula "1")) + (rule "leq_literals" (formula "3") (term "0,0")) + (builtin "One Step Simplification" (formula "3")) + (rule "closeFalse" (formula "3")) + ) + (branch "Case 2" + (rule "allLeft" (formula "1") (inst "t=f_x") (userinteraction)) + (rule "replace_known_left" (formula "1") (term "0,0") (ifseqformula "4") (userinteraction)) + (rule "replace_known_left" (formula "1") (term "1,0") (ifseqformula "5") (userinteraction)) + (rule "replace_known_right" (formula "1") (term "1") (ifseqformula "6") (userinteraction)) + (builtin "One Step Simplification" (formula "1") (userinteraction)) + (rule "closeFalse" (formula "1") (userinteraction)) + ) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesInverse.proof b/key.core/tacletProofs/universe/Taclet_dominatesInverse.proof new file mode 100644 index 0000000000..3b1edb4311 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesInverse.proof @@ -0,0 +1,96 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesInverse" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "0") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_y,f_x") (userinteraction)) +(rule "notRight" (formula "2") (userinteraction)) +(rule "closePeerDominate" (formula "2") (ifseqformula "1") (userinteraction)) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesLargerDepth.proof b/key.core/tacletProofs/universe/Taclet_dominatesLargerDepth.proof new file mode 100644 index 0000000000..f3fad37148 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesLargerDepth.proof @@ -0,0 +1,515 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesLargerDepth", + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "1454") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_y,f_x,f_m,f_n,f_z")) +(rule "orRight" (formula "2")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "notRight" (formula "3")) +(rule "andLeft" (formula "1")) +(rule "int_induction" (inst "b=(\\forall java.lang.Object o; + (( ( (gt(n, Z(0(#)))<> + & dominatesDepth(o, f_z, add(f_n, n))<>)<> + & dominatesDepth(f_x, f_z, f_n)<>)<> + -> dominatesDepth(o, f_x, n)<>)<>))<>") (inst "nv=n") (userinteraction)) +(branch "Base Case" + (rule "allRight" (formula "4") (inst "sk=o_0") (userinteraction)) + (rule "greater_literals" (formula "4") (term "0,0,0")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "2"))) + (rule "closeTrue" (formula "4") (userinteraction)) +) +(branch "Step Case" + (rule "allRight" (formula "4") (inst "sk=n_0") (userinteraction)) + (rule "impRight" (formula "4")) + (rule "andLeft" (formula "1")) + (rule "allRight" (formula "6") (inst "sk=o_0") (userinteraction)) + (rule "impRight" (formula "6")) + (rule "andLeft" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "1")) + (rule "mul_literals" (formula "1") (term "1,0,0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "add_zero_left" (formula "1") (term "0")) + (rule "replace_known_left" (formula "3") (term "1,0,0") (ifseqformula "5") (userinteraction)) + (builtin "One Step Simplification" (formula "3") (userinteraction)) + (rule "geq_to_lt_alt" (formula "2") (userinteraction)) + (rule "orLeft" (formula "2") (userinteraction)) + (branch "n_0 > 0" + (rule "dominatesDepthDef" (formula "1") (inst "ov=ov") (userinteraction)) + (rule "ifthenelse_split_for" (formula "1") (userinteraction)) + (branch "f_n + (n_0 + 1) ≤ 0 TRUE" + (rule "closeFalse" (formula "2") (userinteraction)) + ) + (branch "f_n + (n_0 + 1) ≤ 0 FALSE" + (rule "polySimp_homoEq" (formula "1") (term "0")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "polySimp_mulComm0" (formula "1") (term "1,1,0,0")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_rightDist" (formula "1") (term "1,1,0,0")) + (rule "mul_literals" (formula "1") (term "1,1,1,0,0")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1,1,0,0")) + (rule "polySimp_addComm0" (formula "1") (term "1,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "1,0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0,0")) + (rule "add_literals" (formula "1") (term "0,0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0,0")) + (rule "polySimp_sepNegMonomial" (formula "1") (term "0")) + (rule "polySimp_mulLiterals" (formula "1") (term "0,0")) + (rule "polySimp_elimOne" (formula "1") (term "0,0")) + (rule "ifthenelse_split_for" (formula "1") (userinteraction)) + (branch "n_0 = f_n * -1 TRUE" + (rule "dominatesDepthDef" (formula "6") (inst "ov=ov") (userinteraction)) + (rule "eqSymm" (formula "2")) + (rule "eqSymm" (formula "6") (term "1,2")) + (rule "eqSymm" (formula "6") (term "0,0,2,2")) + (rule "replace_known_left" (formula "4") (term "0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "4")) + (rule "polySimp_elimSub" (formula "10") (term "2")) + (rule "polySimp_elimSub" (formula "6") (term "2,1,0,2,2")) + (rule "mul_literals" (formula "6") (term "1,2,1,0,2,2")) + (rule "polySimp_addComm0" (formula "9") (term "2")) + (rule "polySimp_addComm0" (formula "8") (term "1,0")) + (rule "polySimp_addComm0" (formula "6") (term "2,1,0,2,2")) + (rule "polySimp_addAssoc" (formula "8") (term "0")) + (rule "polySimp_addComm0" (formula "8") (term "0,0")) + (rule "inEqSimp_gtToGeq" (formula "3")) + (rule "times_zero_1" (formula "3") (term "1,0,0")) + (rule "add_zero_right" (formula "3") (term "0,0")) + (rule "inEqSimp_gtToGeq" (formula "5")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "5") (term "0")) + (rule "inEqSimp_leqRight" (formula "8")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "applyEqRigid" (formula "9") (term "1,2") (ifseqformula "2")) + (rule "applyEq" (formula "5") (term "2,1,0") (ifseqformula "2")) + (rule "applyEq" (formula "1") (term "1,0") (ifseqformula "2")) + (rule "polySimp_pullOutFactor1" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,0")) + (rule "times_zero_1" (formula "1") (term "0")) + (rule "qeq_literals" (formula "1")) + (rule "true_left" (formula "1")) + (rule "applyEq" (formula "6") (term "0,1,2") (ifseqformula "2")) + (rule "applyEq" (formula "3") (term "1,0") (ifseqformula "1")) + (rule "applyEqRigid" (formula "4") (term "1,2,0,0") (ifseqformula "1")) + (rule "polySimp_pullOutFactor1" (formula "4") (term "2,0,0")) + (rule "add_literals" (formula "4") (term "1,2,0,0")) + (rule "times_zero_1" (formula "4") (term "2,0,0")) + (rule "inEqSimp_sepNegMonomial1" (formula "5")) + (rule "polySimp_mulLiterals" (formula "5") (term "0")) + (rule "polySimp_elimOne" (formula "5") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_contradEq3" (formula "6") (term "0,2") (ifseqformula "3")) + (rule "mul_literals" (formula "6") (term "1,0,0,0,2")) + (rule "add_literals" (formula "6") (term "0,0,0,2")) + (rule "qeq_literals" (formula "6") (term "0,0,2")) + (builtin "One Step Simplification" (formula "6")) + (rule "inEqSimp_subsumption0" (formula "6") (term "0") (ifseqformula "3")) + (rule "leq_literals" (formula "6") (term "0,0")) + (builtin "One Step Simplification" (formula "6")) + (rule "closeFalse" (formula "6")) + ) + (branch "n_0 = f_n * -1 FALSE" + (rule "exLeft" (formula "1") (inst "sk=ov_0") (userinteraction)) + (rule "andLeft" (formula "1") (userinteraction)) + (rule "polySimp_elimSub" (formula "2") (term "2")) + (rule "polySimp_elimOneLeft0" (formula "2") (term "1,2")) + (rule "polySimp_addAssoc" (formula "2") (term "0,2")) + (rule "polySimp_addLiterals" (formula "2") (term "2")) + (rule "add_zero_right" (formula "2") (term "2")) + (rule "replace_known_left" (formula "4") (term "0,0,0") (ifseqformula "3") (userinteraction)) + (builtin "One Step Simplification" (formula "4") (userinteraction)) + (rule "allLeft" (formula "4") (inst "t=ov_0") (userinteraction)) + (rule "replace_known_left" (formula "4") (term "0") (ifseqformula "2") (userinteraction)) + (builtin "One Step Simplification" (formula "4") (userinteraction)) + (rule "dominatesDepthDef" (formula "11") (inst "ov=ov") (userinteraction)) + (rule "ifthenelse_split_for" (formula "11") (userinteraction)) + (branch "n_0 + 1 ≤ 0 TRUE" + (rule "false_right" (formula "12")) + (rule "eqSymm" (formula "2")) + (rule "polySimp_elimSub" (formula "12") (term "2")) + (rule "polySimp_addComm0" (formula "11") (term "1,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "polySimp_addAssoc" (formula "11") (term "0")) + (rule "polySimp_addComm0" (formula "11") (term "0,0")) + (rule "inEqSimp_leqRight" (formula "11")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "inEqSimp_gtToGeq" (formula "8")) + (rule "polySimp_mulComm0" (formula "8") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "8") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "5")) + (rule "times_zero_1" (formula "5") (term "1,0,0")) + (rule "add_zero_right" (formula "5") (term "0,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "2")) + (rule "mul_literals" (formula "2") (term "1")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "inEqSimp_sepNegMonomial1" (formula "8")) + (rule "polySimp_mulLiterals" (formula "8") (term "0")) + (rule "polySimp_elimOne" (formula "8") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "5")) + (rule "mul_literals" (formula "5") (term "1")) + (rule "inEqSimp_strengthen1" (formula "1") (ifseqformula "11")) + (rule "inEqSimp_contradEq7" (formula "11") (ifseqformula "1")) + (rule "polySimp_mulAssoc" (formula "11") (term "1,0,0")) + (rule "polySimp_mulComm0" (formula "11") (term "0,1,0,0")) + (rule "polySimp_mulLiterals" (formula "11") (term "1,0,0")) + (rule "polySimp_pullOutFactor0b" (formula "11") (term "0,0")) + (rule "add_literals" (formula "11") (term "1,1,0,0")) + (rule "times_zero_1" (formula "11") (term "1,0,0")) + (rule "add_zero_right" (formula "11") (term "0,0")) + (rule "leq_literals" (formula "11") (term "0")) + (builtin "One Step Simplification" (formula "11")) + (rule "false_right" (formula "11")) + (rule "inEqSimp_contradInEq0" (formula "5") (ifseqformula "2")) + (rule "qeq_literals" (formula "5") (term "0")) + (builtin "One Step Simplification" (formula "5")) + (rule "closeFalse" (formula "5")) + ) + (branch "n_0 + 1 ≤ 0 FALSE" + (rule "ifthenelse_split_for" (formula "12") (userinteraction)) + (branch "n_0 + 1 = 1 TRUE" + (rule "eqSymm" (formula "2")) + (rule "eqSymm" (formula "13")) + (rule "polySimp_homoEq" (formula "1")) + (rule "polySimp_elimSub" (formula "14") (term "2")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0")) + (rule "polySimp_addComm0" (formula "12") (term "0")) + (rule "polySimp_addComm0" (formula "11") (term "1,0")) + (rule "polySimp_addComm0" (formula "1") (term "1,1,0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "mul_literals" (formula "1") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "11") (term "0")) + (rule "polySimp_addComm0" (formula "11") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "add_zero_left" (formula "1") (term "0")) + (rule "inEqSimp_leqRight" (formula "12")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "add_zero_left" (formula "1") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "8")) + (rule "polySimp_mulComm0" (formula "8") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "8") (term "0")) + (rule "inEqSimp_gtToGeq" (formula "5")) + (rule "times_zero_1" (formula "5") (term "1,0,0")) + (rule "add_zero_right" (formula "5") (term "0,0")) + (rule "inEqSimp_leqRight" (formula "12")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "add_literals" (formula "1") (term "0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0")) + (rule "polySimp_invertEq" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "times_zero_2" (formula "3") (term "1")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "applyEq" (formula "8") (term "2,1,0") (ifseqformula "3")) + (rule "applyEq" (formula "5") (term "1,2") (ifseqformula "3")) + (rule "add_zero_right" (formula "5") (term "2")) + (rule "applyEqRigid" (formula "7") (term "2") (ifseqformula "3")) + (rule "applyEq" (formula "6") (term "1,0") (ifseqformula "3")) + (rule "add_zero_right" (formula "6") (term "0")) + (rule "qeq_literals" (formula "6")) + (rule "closeFalse" (formula "6")) + ) + (branch "n_0 + 1 = 1 FALSE" + (rule "exRight" (formula "13") (inst "t=ov_0") (userinteraction)) + (rule "replace_known_left" (formula "13") (term "0") (ifseqformula "1") (userinteraction)) + (rule "polySimp_elimSub" (formula "13") (term "2,1")) + (rule "polySimp_pullOutFactor1b" (formula "13") (term "2,1")) + (rule "polySimp_elimOneLeft0" (formula "13") (term "1,2,1")) + (rule "polySimp_addComm0" (formula "13") (term "2,1")) + (rule "cut_direct" (formula "13") (term "1")) + (branch "CUT: dominatesDepth(ov_0, f_x, 1 + -1 + n_0) TRUE" + (rule "add_literals" (formula "1") (term "0,2")) + (rule "add_zero_left" (formula "1") (term "2")) + (builtin "One Step Simplification" (formula "13")) + (rule "closeTrue" (formula "13") (userinteraction)) + ) + (branch "CUT: dominatesDepth(ov_0, f_x, 1 + -1 + n_0) FALSE" + (rule "add_literals" (formula "13") (term "0,2")) + (rule "add_zero_left" (formula "13") (term "2")) + (rule "close" (formula "13") (ifseqformula "4")) + ) + ) + ) + ) + ) + ) + (branch "n_0 = 0" + (rule "applyEqRigid" (formula "7") (term "0,2") (ifseqformula "2") (userinteraction)) + (rule "applyEqRigid" (formula "1") (term "0,1,2") (ifseqformula "2") (userinteraction)) + (rule "add_literals" (formula "1") (term "1,2")) + (rule "polySimp_addComm0" (formula "1") (term "2")) + (rule "add_zero_left" (formula "7") (term "2")) + (rule "applyEqRigid" (formula "3") (term "1,2,1,0,0") (ifseqformula "2") (userinteraction)) + (rule "applyEqRigid" (formula "3") (term "2,1,0") (ifseqformula "2") (userinteraction)) + (rule "inEqSimp_gtToGeq" (formula "3") (term "0,0,0")) + (rule "times_zero_1" (formula "3") (term "1,0,0,0,0,0")) + (rule "add_zero_right" (formula "3") (term "0,0,0,0,0")) + (rule "applyEq" (formula "3") (term "1,0,0,0,0") (ifseqformula "2")) + (rule "dominatesDepthDef" (formula "7") (inst "ov=ov") (userinteraction)) + (builtin "One Step Simplification" (formula "7") (userinteraction)) + (rule "leq_literals" (formula "7") (term "0")) + (builtin "One Step Simplification" (formula "7")) + (rule "add_zero_right" (formula "3") (term "2,1,0,0")) + (rule "nnf_imp2or" (formula "3") (term "0")) + (rule "nnf_notAnd" (formula "3") (term "0,0")) + (rule "inEqSimp_notGeq" (formula "3") (term "0,0,0")) + (rule "commute_or_2" (formula "3") (term "0")) + (rule "commute_or" (formula "3") (term "0,0")) + (rule "commute_or_2" (formula "3") (term "0")) + (rule "cut_direct" (formula "3") (term "1,0")) + (branch "CUT: 1 + -1 * 0 + (-1 + 0) ≤ 0 TRUE" + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "mul_literals" (formula "3") (term "1,0,0")) + (rule "add_literals" (formula "3") (term "1,0")) + (rule "add_literals" (formula "3") (term "0,0")) + (rule "add_literals" (formula "3") (term "0")) + (rule "leq_literals" (formula "3")) + (rule "true_left" (formula "3")) + (rule "dominatesDepthDef" (formula "1") (inst "ov=ov") (userinteraction)) + (rule "ifthenelse_split_for" (formula "1") (userinteraction)) + (branch "1 + f_n ≤ 0 TRUE" + (rule "closeFalse" (formula "2") (userinteraction)) + ) + (branch "1 + f_n ≤ 0 FALSE" + (rule "ifthenelse_split_for" (formula "1") (userinteraction)) + (branch "1 + f_n = 1 TRUE" + (rule "polySimp_homoEq" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "mul_literals" (formula "1") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_sepNegMonomial" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1") (userinteraction)) + (rule "applyEqRigid" (formula "5") (term "2") (ifseqformula "1") (userinteraction)) + (rule "dominatesDepthDef" (formula "5") (inst "ov=ov") (userinteraction)) + (rule "leq_literals" (formula "5") (term "0")) + (builtin "One Step Simplification" (formula "5")) + (rule "closeFalse" (formula "5")) + ) + (branch "1 + f_n = 1 FALSE" + (rule "exLeft" (formula "1") (inst "sk=ov_0") (userinteraction)) + (rule "andLeft" (formula "1") (userinteraction)) + (rule "polySimp_elimSub" (formula "2") (term "2")) + (rule "mul_literals" (formula "2") (term "1,2")) + (rule "polySimp_addComm1" (formula "2") (term "2")) + (rule "add_literals" (formula "2") (term "0,2") (userinteraction)) + (rule "add_zero_left" (formula "2") (term "2") (userinteraction)) + (rule "dominatesSameDepth" (formula "5") (ifseqformula "2") (userinteraction)) + (rule "applyEqReverse" (formula "10") (term "0,1") (ifseqformula "5") (userinteraction)) + (rule "close" (formula "10") (ifseqformula "1") (userinteraction)) + ) + ) + ) + (branch "CUT: 1 + -1 * 0 + (-1 + 0) ≤ 0 FALSE" + (builtin "One Step Simplification" (formula "3")) + (rule "add_literals" (formula "7") (term "1,0")) + (rule "mul_literals" (formula "7") (term "1,0,0")) + (rule "polySimp_addLiterals" (formula "7") (term "0")) + (rule "add_literals" (formula "7") (term "0")) + (rule "leq_literals" (formula "7")) + (rule "closeTrue" (formula "7")) + ) + ) +) +(branch "Use Case" + (rule "allLeft" (formula "1") (inst "t=sub(f_m, f_n)") (userinteraction)) + (rule "impLeft" (formula "1") (userinteraction)) + (branch "Case 1" + (rule "sub" (formula "5") (term "0") (userinteraction)) + (rule "polySimp_elimNeg" (formula "5") (term "1,0")) + (rule "inEqSimp_geqRight" (formula "5")) + (rule "mul_literals" (formula "1") (term "1,0,0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "inEqSimp_sepNegMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "geq_to_leq" (formula "1") (userinteraction)) + (rule "inEqSimp_gtToGeq" (formula "3") (userinteraction)) + (rule "polySimp_mulComm0" (formula "3") (term "1,0,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "dominatesDepthDef" (formula "4") (inst "ov=ov") (userinteraction)) + (rule "dominatesDepthDef" (formula "5") (inst "ov=ov") (userinteraction)) + (rule "eqSymm" (formula "4") (term "1,2")) + (rule "eqSymm" (formula "4") (term "0,0,2,2")) + (rule "eqSymm" (formula "5") (term "1,2")) + (rule "eqSymm" (formula "5") (term "0,0,2,2")) + (rule "polySimp_elimSub" (formula "6") (term "2")) + (rule "polySimp_elimSub" (formula "5") (term "2,1,0,2,2")) + (rule "mul_literals" (formula "5") (term "1,2,1,0,2,2")) + (rule "polySimp_elimSub" (formula "4") (term "2,1,0,2,2")) + (rule "mul_literals" (formula "4") (term "1,2,1,0,2,2")) + (rule "polySimp_addComm0" (formula "5") (term "2,1,0,2,2")) + (rule "polySimp_addComm0" (formula "4") (term "2,1,0,2,2")) + (rule "inEqSimp_gtToGeq" (formula "2") (term "0,0,0,0,1,0")) + (rule "times_zero_1" (formula "2") (term "1,0,0,0,0,0,0,1,0")) + (rule "add_zero_right" (formula "2") (term "0,0,0,0,0,0,1,0")) + (rule "inEqSimp_commuteLeq" (formula "1")) + (rule "inEqSimp_sepNegMonomial1" (formula "3")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "inEqSimp_sepPosMonomial1" (formula "2") (term "0,0,0,0,1,0")) + (rule "mul_literals" (formula "2") (term "1,0,0,0,0,1,0")) + (rule "inEqSimp_contradInEq1" (formula "3") (ifseqformula "1")) + (rule "andLeft" (formula "3")) + (rule "inEqSimp_homoInEq1" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0")) + (rule "polySimp_rightDist" (formula "3") (term "1,0")) + (rule "mul_literals" (formula "3") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "3") (term "0")) + (rule "polySimp_addComm1" (formula "3") (term "0,0")) + (rule "add_literals" (formula "3") (term "0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "1,1,0")) + (rule "times_zero_1" (formula "3") (term "1,0")) + (rule "add_zero_right" (formula "3") (term "0")) + (rule "leq_literals" (formula "3")) + (rule "closeFalse" (formula "3")) + ) + (branch "Case 2" + (rule "add_greater" (formula "1") (term "0,0,0,0") (inst "i1=f_n") (userinteraction)) + (rule "polySimp_elimSub" (formula "1") (term "1,0,0,0,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0,0,0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0,0,0,0,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0,0,0,0,0")) + (rule "add_literals" (formula "1") (term "1,1,0,0,0,0,0")) + (rule "times_zero_1" (formula "1") (term "1,0,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0,0,0,0")) + (rule "add_zero_right" (formula "1") (term "1,0,0,0,0") (userinteraction)) + (rule "replace_known_left" (formula "1") (term "0,0,0,0") (ifseqformula "3") (userinteraction)) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "4")) (userinteraction)) + (rule "polySimp_elimSub" (formula "1") (term "1,2,0,0") (userinteraction)) + (rule "polySimp_addAssoc" (formula "1") (term "2,0,0") (userinteraction)) + (rule "switch_params" (formula "1") (term "0,2,0,0") (userinteraction)) + (rule "polySimp_addComm1" (formula "1") (term "2,0,0") (userinteraction)) + (rule "switch_params" (formula "1") (term "2,0,0") (userinteraction)) + (rule "polySimp_addAssoc" (formula "1") (term "2,0,0") (userinteraction)) + (rule "switch_params" (formula "1") (term "2,0,0") (userinteraction)) + (rule "polySimp_addAssoc" (formula "1") (term "2,0,0") (userinteraction)) + (rule "polySimp_pullOutFactor2" (formula "1") (term "0,2,0,0")) + (rule "add_literals" (formula "1") (term "1,0,2,0,0")) + (rule "times_zero_1" (formula "1") (term "0,2,0,0") (userinteraction)) + (rule "add_zero_left" (formula "1") (term "2,0,0") (userinteraction)) + (rule "allLeft" (formula "1") (inst "t=f_y") (userinteraction)) + (rule "replace_known_left" (formula "1") (term "0") (ifseqformula "6") (userinteraction)) + (rule "replace_known_right" (formula "1") (term "1") (ifseqformula "7") (userinteraction)) + (builtin "One Step Simplification" (formula "1") (userinteraction)) + (rule "closeFalse" (formula "1") (userinteraction)) + ) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesNegNotEqual.proof b/key.core/tacletProofs/universe/Taclet_dominatesNegNotEqual.proof new file mode 100644 index 0000000000..a41e96097b --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesNegNotEqual.proof @@ -0,0 +1,98 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 9000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesNegNotEqual" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "10") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_y,f_z,f_x")) +(rule "impRight" (formula "2")) +(rule "eqSymm" (formula "2")) +(rule "applyEqRigid" (formula "1") (term "1") (ifseqformula "2")) +(rule "close" (formula "3") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesNegTransitive.proof b/key.core/tacletProofs/universe/Taclet_dominatesNegTransitive.proof new file mode 100644 index 0000000000..c9cd0dfac8 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesNegTransitive.proof @@ -0,0 +1,97 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 9000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesNegTransitive" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "11") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_z,f_y,f_x")) +(rule "impRight" (formula "2")) +(rule "dominatesTransitive" (formula "2") (ifseqformula "1")) +(rule "close" (formula "4") (ifseqformula "2")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesNotEqual.proof b/key.core/tacletProofs/universe/Taclet_dominatesNotEqual.proof new file mode 100644 index 0000000000..fe01bc7861 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesNotEqual.proof @@ -0,0 +1,98 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesNotEqual" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "3") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_x,f_y")) +(rule "notRight" (formula "2")) +(rule "applyEqRigid" (formula "1") (term "0") (ifseqformula "2") (userinteraction)) + (builtin "One Step Simplification" (formula "1") (userinteraction)) +(rule "closeFalse" (formula "1") (userinteraction)) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesNotEqualLeft.proof b/key.core/tacletProofs/universe/Taclet_dominatesNotEqualLeft.proof new file mode 100644 index 0000000000..85aa9c9b2a --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesNotEqualLeft.proof @@ -0,0 +1,98 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesNotEqualLeft" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "41") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_y,f_x")) +(rule "notRight" (formula "2")) +(rule "applyEqReverse" (formula "1") (term "0") (ifseqformula "2") (userinteraction)) + (builtin "One Step Simplification" (formula "1") (userinteraction)) +(rule "closeFalse" (formula "1") (userinteraction)) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesSameDepth.proof b/key.core/tacletProofs/universe/Taclet_dominatesSameDepth.proof new file mode 100644 index 0000000000..68077327ce --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesSameDepth.proof @@ -0,0 +1,261 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesSameDepth", + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "268") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_x,f_y,f_z,f_n")) +(rule "orRight" (formula "2")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "notRight" (formula "3")) +(rule "int_induction" (inst "b=(\\forall java.lang.Object o1; + (\\forall java.lang.Object o2; + (( ( dominatesDepth(o1, f_z, f_n)<> + & dominatesDepth(o2, f_z, f_n)<>)<> + -> (o1 = o2)<>)<>))<>)<>") (inst "nv=f_n") (userinteraction)) +(branch "Base Case" + (rule "allRight" (formula "3") (inst "sk=o1_0") (userinteraction)) + (rule "allRight" (formula "3") (inst "sk=o2_0") (userinteraction)) + (rule "impRight" (formula "3")) + (rule "andLeft" (formula "1")) + (rule "dominatesDepthDef" (formula "1") (inst "ov=ov") (userinteraction)) + (rule "leq_literals" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) + (rule "closeFalse" (formula "1")) +) +(branch "Step Case" + (rule "allRight" (formula "3") (inst "sk=f_n_0") (userinteraction)) + (rule "impRight" (formula "3")) + (rule "andLeft" (formula "1")) + (rule "swapQuantifiersAll" (formula "5") (userinteraction)) + (rule "allRight" (formula "5") (inst "sk=o2_0") (userinteraction)) + (rule "allRight" (formula "5") (inst "sk=o1_0") (userinteraction)) + (rule "impRight" (formula "5")) + (rule "andLeft" (formula "1")) + (rule "dominatesDepthDef" (formula "1") (inst "ov=ov") (userinteraction)) + (rule "dominatesDepthDef" (formula "2") (inst "ov=ov") (userinteraction)) + (rule "ifthenelse_split_for" (formula "1") (userinteraction)) + (branch "f_n_0 + 1 ≤ 0 TRUE" + (rule "closeFalse" (formula "2") (userinteraction)) + ) + (branch "f_n_0 + 1 ≤ 0 FALSE" + (rule "replace_known_right" (formula "2") (term "0") (ifseqformula "7") (userinteraction)) + (builtin "One Step Simplification" (formula "2") (userinteraction)) + (rule "polySimp_homoEq" (formula "2") (term "0")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0,0")) + (rule "polySimp_addComm0" (formula "2") (term "1,1,0,0")) + (rule "polySimp_rightDist" (formula "2") (term "1,0,0")) + (rule "mul_literals" (formula "2") (term "0,1,0,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0,0")) + (rule "add_literals" (formula "2") (term "0,0,0")) + (rule "add_zero_left" (formula "2") (term "0,0")) + (rule "polySimp_invertEq" (formula "2") (term "0")) + (rule "mul_literals" (formula "2") (term "1,0")) + (rule "polySimp_mulLiterals" (formula "2") (term "0,0")) + (rule "polySimp_elimOne" (formula "2") (term "0,0")) + (rule "polySimp_elimSub" (formula "1") (term "2,1,0,2")) + (rule "mul_literals" (formula "1") (term "1,2,1,0,2")) + (rule "polySimp_addLiterals" (formula "1") (term "2,1,0,2")) + (rule "add_zero_right" (formula "1") (term "2,1,0,2")) + (rule "ifthenelse_split_for" (formula "2") (userinteraction)) + (branch "f_n_0 = 0 TRUE" + (rule "applyEqRigid" (formula "1") (term "0,0,0") (ifseqformula "2") (userinteraction)) + (rule "add_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "eqSymm" (formula "1")) + (rule "applyEqRigid" (formula "9") (term "1") (ifseqformula "3") (userinteraction)) + (rule "applyEqReverse" (formula "9") (term "0") (ifseqformula "1") (userinteraction)) + (builtin "One Step Simplification" (formula "9") (userinteraction)) + (rule "closeTrue" (formula "9") (userinteraction)) + ) + (branch "f_n_0 = 0 FALSE" + (rule "ifthenelse_split_for" (formula "1") (userinteraction)) + (branch "f_n_0 + 1 = 1 TRUE" + (rule "exLeft" (formula "3") (inst "sk=ov_0")) + (rule "andLeft" (formula "3")) + (rule "eqSymm" (formula "12")) + (rule "eqSymm" (formula "6") (term "1,0,0")) + (rule "eqSymm" (formula "11")) + (rule "eqSymm" (formula "2")) + (rule "eqSymm" (formula "3")) + (rule "polySimp_homoEq" (formula "1")) + (rule "polySimp_elimSub" (formula "4") (term "2")) + (rule "mul_literals" (formula "4") (term "1,2")) + (rule "polySimp_addLiterals" (formula "4") (term "2")) + (rule "add_zero_right" (formula "4") (term "2")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0")) + (rule "polySimp_addComm0" (formula "10") (term "0")) + (rule "polySimp_addComm0" (formula "1") (term "1,1,0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "mul_literals" (formula "1") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "add_zero_left" (formula "1") (term "0")) + (rule "inEqSimp_leqRight" (formula "10")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "0,0")) + (rule "add_zero_left" (formula "1") (term "0")) + (rule "polySimp_invertEq" (formula "1")) + (rule "times_zero_2" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "close" (formula "9") (ifseqformula "1")) + ) + (branch "f_n_0 + 1 = 1 FALSE" + (rule "exLeft" (formula "1") (inst "sk=ov_0") (userinteraction)) + (rule "exLeft" (formula "2") (inst "sk=ov_1") (userinteraction)) + (rule "andLeft" (formula "1") (userinteraction)) + (rule "andLeft" (formula "3") (userinteraction)) + (rule "polySimp_elimSub" (formula "4") (term "2") (userinteraction)) + (rule "polySimp_addComm0" (formula "4") (term "2") (userinteraction)) + (rule "mul_literals" (formula "4") (term "0,2") (userinteraction)) + (rule "polySimp_addAssoc" (formula "4") (term "2") (userinteraction)) + (rule "polySimp_addComm0" (formula "4") (term "2") (userinteraction)) + (rule "polySimp_addComm0" (formula "4") (term "2") (userinteraction)) + (rule "polySimp_addComm0" (formula "4") (term "0,2") (userinteraction)) + (rule "polySimp_addComm1" (formula "4") (term "2") (userinteraction)) + (rule "polySimp_addComm0" (formula "4") (term "2") (userinteraction)) + (rule "rotate_params" (formula "4") (term "2") (userinteraction)) + (rule "add_literals" (formula "4") (term "1,2") (userinteraction)) + (rule "add_zero_right" (formula "4") (term "2") (userinteraction)) + (rule "instAll" (formula "4") (term "0") (ifseqformula "6") (userinteraction)) + (rule "instAll" (formula "2") (term "0") (ifseqformula "4") (userinteraction)) + (rule "replace_known_left" (formula "2") (term "0,0") (ifseqformula "6") (userinteraction)) + (rule "replace_known_left" (formula "2") (term "1,0") (ifseqformula "3") (userinteraction)) + (builtin "One Step Simplification" (formula "2") (userinteraction)) + (rule "applyEqReverse" (formula "1") (term "0,1") (ifseqformula "2") (userinteraction)) + (rule "applyEqRigid" (formula "14") (term "0") (ifseqformula "1") (userinteraction)) + (rule "applyEqRigid" (formula "14") (term "1") (ifseqformula "4") (userinteraction)) + (builtin "One Step Simplification" (formula "14") (userinteraction)) + (rule "closeTrue" (formula "14") (userinteraction)) + ) + ) + ) +) +(branch "Use Case" + (rule "allLeft" (formula "1") (inst "t=f_n") (userinteraction)) + (rule "impLeft" (formula "1") (userinteraction)) + (branch "Case 1" + (rule "dominatesDepthDef" (formula "3") (inst "ov=ov") (userinteraction)) + (rule "eqSymm" (formula "5")) + (rule "eqSymm" (formula "1") (term "1,0,0,1,0")) + (rule "eqSymm" (formula "3") (term "1,2")) + (rule "eqSymm" (formula "3") (term "0,0,2,2")) + (rule "polySimp_elimSub" (formula "3") (term "2,1,0,2,2")) + (rule "mul_literals" (formula "3") (term "1,2,1,0,2,2")) + (rule "polySimp_addComm0" (formula "3") (term "2,1,0,2,2")) + (rule "inEqSimp_geqRight" (formula "4")) + (rule "times_zero_1" (formula "1") (term "1,0,0")) + (rule "add_zero_right" (formula "1") (term "0,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "mul_literals" (formula "1") (term "1")) + (rule "inEqSimp_contradEq3" (formula "4") (term "0,2") (ifseqformula "1")) + (rule "mul_literals" (formula "4") (term "1,0,0,0,2")) + (rule "add_literals" (formula "4") (term "0,0,0,2")) + (rule "qeq_literals" (formula "4") (term "0,0,2")) + (builtin "One Step Simplification" (formula "4")) + (rule "inEqSimp_subsumption0" (formula "4") (term "0") (ifseqformula "1")) + (rule "leq_literals" (formula "4") (term "0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "closeFalse" (formula "4")) + ) + (branch "Case 2" + (rule "instAll" (formula "3") (term "0") (ifseqformula "1") (userinteraction)) + (rule "allLeft" (formula "3") (inst "t=f_y") (userinteraction)) + (rule "replace_known_left" (formula "3") (term "0,0") (ifseqformula "5") (userinteraction)) + (rule "replace_known_left" (formula "3") (term "1,0") (ifseqformula "6") (userinteraction)) + (rule "replace_known_right" (formula "3") (term "1") (ifseqformula "7") (userinteraction)) + (builtin "One Step Simplification" (formula "3") (userinteraction)) + (rule "closeFalse" (formula "3") (userinteraction)) + ) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesSameNotUndom.proof b/key.core/tacletProofs/universe/Taclet_dominatesSameNotUndom.proof new file mode 100644 index 0000000000..f90ba3e553 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesSameNotUndom.proof @@ -0,0 +1,175 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesSameNotUndom" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "250") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_x,f_y,f_z")) +(rule "orRight" (formula "2")) +(rule "notRight" (formula "2")) +(rule "notRight" (formula "3")) +(rule "undomDef" (formula "3") (userinteraction)) +(rule "andLeft" (formula "3")) +(rule "andLeft" (formula "3")) +(rule "notLeft" (formula "5")) +(rule "notLeft" (formula "3")) +(rule "notLeft" (formula "3")) +(rule "dominatesDef" (formula "1") (inst "n=n") (userinteraction)) +(rule "dominatesDef" (formula "2") (inst "n=n") (userinteraction)) +(rule "dominatesDef" (formula "3") (inst "n=n") (userinteraction)) +(rule "dominatesDef" (formula "4") (inst "n=n") (userinteraction)) +(rule "exLeft" (formula "1") (inst "sk=n_0") (userinteraction)) +(rule "exLeft" (formula "2") (inst "sk=n_1") (userinteraction)) +(rule "cut" (inst "cutFormula=(n_0 = n_1)<>") (userinteraction)) +(branch "CUT: n_0 = n_1 TRUE" + (rule "applyEqRigid" (formula "2") (term "2") (ifseqformula "1") (userinteraction)) + (rule "dominatesSameDepth" (formula "2") (ifseqformula "2") (userinteraction)) + (rule "dominatesSameDepth" (formula "3") (ifseqformula "4") (userinteraction)) + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "eqSymm" (formula "1")) + (rule "eqSymm" (formula "7")) + (rule "close" (formula "7") (ifseqformula "2")) +) +(branch "CUT: n_0 = n_1 FALSE" + (rule "cut" (inst "cutFormula=gt(n_0, n_1)<>") (userinteraction)) + (branch "CUT: n_0 > n_1 TRUE" + (rule "exRight" (formula "6") (inst "t=sub(n_0, n_1)") (userinteraction)) + (rule "dominatesLargerDepth" (formula "2") (ifseqformula "1") (ifseqformula "3") (userinteraction)) + (rule "close" (formula "7") (ifseqformula "2") (userinteraction)) + ) + (branch "CUT: n_0 > n_1 FALSE" + (rule "cut" (inst "cutFormula=gt(n_1, n_0)<>") (userinteraction)) + (branch "CUT: n_1 > n_0 TRUE" + (rule "dominatesLargerDepth" (formula "3") (ifseqformula "1") (ifseqformula "2") (userinteraction)) + (rule "exRight" (formula "7") (inst "t=sub(n_1, n_0)") (userinteraction)) + (rule "close" (formula "7") (ifseqformula "3")) + ) + (branch "CUT: n_1 > n_0 FALSE" + (rule "eqSymm" (formula "8")) + (rule "eqSymm" (formula "5")) + (rule "inEqSimp_gtRight" (formula "4")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_gtRight" (formula "4")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "inEqSimp_sepNegMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1")) + (rule "polySimp_elimOne" (formula "1") (term "1")) + (rule "inEqSimp_strengthen0" (formula "1") (ifseqformula "5")) + (rule "inEqSimp_contradEq3" (formula "5") (ifseqformula "1")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "5") (term "0,0")) + (rule "add_literals" (formula "5") (term "1,1,0,0")) + (rule "times_zero_1" (formula "5") (term "1,0,0")) + (rule "add_zero_right" (formula "5") (term "0,0")) + (rule "qeq_literals" (formula "5") (term "0")) + (builtin "One Step Simplification" (formula "5")) + (rule "false_right" (formula "5")) + (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "2")) + (rule "andLeft" (formula "1")) + (rule "inEqSimp_homoInEq1" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1,0")) + (rule "polySimp_rightDist" (formula "1") (term "1,0")) + (rule "mul_literals" (formula "1") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0")) + (rule "polySimp_addComm0" (formula "1") (term "0,0")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,1,0")) + (rule "times_zero_1" (formula "1") (term "1,0")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "leq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesSingleDepth.proof b/key.core/tacletProofs/universe/Taclet_dominatesSingleDepth.proof new file mode 100644 index 0000000000..3e0cdd6072 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesSingleDepth.proof @@ -0,0 +1,148 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesSingleDepth", + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "158") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "v_m,f_x,f_y,f_n")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "allRight" (formula "2") (inst "sk=v_m_0") (userinteraction)) +(rule "impRight" (formula "2")) +(rule "cut" (inst "cutFormula=gt(v_m_0, f_n)<>") (userinteraction)) +(branch "CUT: v_m_0 > f_n TRUE" + (rule "dominatesLargerDepth" (formula "2") (ifseqformula "1") (ifseqformula "3") (userinteraction)) + (rule "dominatesDepth2Dominates" (formula "2") (userinteraction)) + (rule "dominatesSelf" (formula "2") (term "1") (userinteraction)) + (builtin "One Step Simplification" (formula "2") (userinteraction)) + (rule "closeFalse" (formula "2") (userinteraction)) +) +(branch "CUT: v_m_0 > f_n FALSE" + (rule "cut" (inst "cutFormula=lt(v_m_0, f_n)<>") (userinteraction)) + (branch "CUT: v_m_0 < f_n TRUE" + (rule "lt_to_gt" (formula "1") (userinteraction)) + (rule "dominatesLargerDepth" (formula "3") (ifseqformula "1") (ifseqformula "2") (userinteraction)) + (rule "dominatesDepth2Dominates" (formula "3") (userinteraction)) + (rule "dominatesSelf" (formula "3") (term "1") (userinteraction)) + (builtin "One Step Simplification" (formula "3") (userinteraction)) + (rule "closeFalse" (formula "3") (userinteraction)) + ) + (branch "CUT: v_m_0 < f_n FALSE" + (rule "inEqSimp_gtRight" (formula "4")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "inEqSimp_ltRight" (formula "4")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "1")) + (rule "polySimp_elimOne" (formula "2") (term "1")) + (rule "inEqSimp_sepPosMonomial1" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1")) + (rule "polySimp_elimOne" (formula "1") (term "1")) + (rule "inEqSimp_strengthen1" (formula "1") (ifseqformula "5")) + (rule "inEqSimp_contradEq7" (formula "5") (ifseqformula "1")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "5") (term "0,0")) + (rule "add_literals" (formula "5") (term "1,1,0,0")) + (rule "times_zero_1" (formula "5") (term "1,0,0")) + (rule "add_zero_right" (formula "5") (term "0,0")) + (rule "leq_literals" (formula "5") (term "0")) + (builtin "One Step Simplification" (formula "5")) + (rule "false_right" (formula "5")) + (rule "inEqSimp_contradInEq0" (formula "1") (ifseqformula "2")) + (rule "andLeft" (formula "1")) + (rule "inEqSimp_homoInEq1" (formula "1")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,1,0")) + (rule "times_zero_1" (formula "1") (term "1,0")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "leq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_dominatesTransitive.proof b/key.core/tacletProofs/universe/Taclet_dominatesTransitive.proof new file mode 100644 index 0000000000..c76f2603af --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_dominatesTransitive.proof @@ -0,0 +1,106 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "dominatesTransitive", + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "4") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_x,f_z,f_y")) +(rule "orRight" (formula "2")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "notRight" (formula "3")) +(rule "dominatesDef" (formula "2") (inst "n=n") (userinteraction)) +(rule "dominatesDef" (formula "1") (inst "n=n") (userinteraction)) +(rule "dominatesDef" (formula "3") (inst "n=n") (userinteraction)) +(rule "exLeft" (formula "2") (inst "sk=n_0") (userinteraction)) +(rule "exLeft" (formula "1") (inst "sk=n_1") (userinteraction)) +(rule "exRight" (formula "3") (inst "t=add(n_1, n_0)") (userinteraction)) +(rule "dominatesDepthTransitive" (formula "2") (ifseqformula "1") (userinteraction)) +(rule "close" (formula "4") (ifseqformula "2") (userinteraction)) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_owns2Dominates.proof b/key.core/tacletProofs/universe/Taclet_owns2Dominates.proof new file mode 100644 index 0000000000..dbcbf98abe --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_owns2Dominates.proof @@ -0,0 +1,104 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "owns2Dominates" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "19") + +(branch "dummy ID" +(rule "dominatesDef" (formula "1") (term "0,0") (inst "n=n") (userinteraction)) +(rule "impRight" (formula "1")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "exRight" (formula "2") (inst "t=Z(1(#))") (userinteraction)) +(rule "dominatesDepthDef" (formula "2") (inst "ov=ov") (userinteraction)) + (builtin "One Step Simplification" (formula "2")) +(rule "leq_literals" (formula "2") (term "0")) + (builtin "One Step Simplification" (formula "2")) +(rule "eqSymm" (formula "2")) +(rule "close" (formula "2") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_ownsSelf.proof b/key.core/tacletProofs/universe/Taclet_ownsSelf.proof new file mode 100644 index 0000000000..f589ae6636 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_ownsSelf.proof @@ -0,0 +1,97 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "ownsSelf", + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "0") + +(branch "dummy ID" +(rule "notRight" (formula "1") (newnames "f_o") (userinteraction)) +(rule "owns2Dominates" (formula "1") (userinteraction)) +(rule "dominatesSelf" (formula "1") (userinteraction)) +(rule "closeFalse" (formula "1") (userinteraction)) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_repfpDisjointComplement.proof b/key.core/tacletProofs/universe/Taclet_repfpDisjointComplement.proof new file mode 100644 index 0000000000..c8d5e0697f --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_repfpDisjointComplement.proof @@ -0,0 +1,142 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "repfpDisjointComplement" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "250") + +(branch "dummy ID" +(rule "equalityToElementOf" (formula "1") (term "0") (inst "ov=ov") (inst "fv=fv") (userinteraction)) + (builtin "One Step Simplification" (formula "1")) +(rule "eqSymm" (formula "1") (term "0,1")) +(rule "elementOfIntersect" (formula "1") (term "0,0,0,0")) +(rule "repfpElement" (formula "1") (term "1,0,0,0,0")) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "repfpElement" (formula "1") (term "0,0,0,0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "nnf_notAnd" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "nnf_notOr" (formula "1") (term "1,0,0")) +(rule "commute_or" (formula "1") (term "1")) +(rule "equiv_right" (formula "1")) +(branch "Case '->'" + (rule "orRight" (formula "2")) + (rule "cnf_rightDist" (formula "1") (term "0")) + (rule "distr_forallAnd" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "commute_or" (formula "2") (term "0")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "3")) (ifInst "" (formula "4"))) + (rule "closeFalse" (formula "2")) +) +(branch "Case '<-'" + (rule "allRight" (formula "2") (inst "sk=ov_0")) + (rule "orRight" (formula "2")) + (rule "orRight" (formula "2")) + (rule "cut_direct" (formula "1") (term "1")) + (branch "CUT: f_y = f_x TRUE" + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "applyEqRigid" (formula "4") (term "1,0,1") (ifseqformula "1")) + (rule "replace_known_right" (formula "4") (term "0,1") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "4")) + (rule "notRight" (formula "4")) + (rule "applyEqRigid" (formula "1") (term "0") (ifseqformula "2")) + (rule "close" (formula "3") (ifseqformula "1")) + ) + (branch "CUT: f_y = f_x FALSE" + (builtin "One Step Simplification" (formula "1")) + (rule "dominatesNegNotEqual" (formula "5") (term "0,1") (ifseqformula "1") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "5")) + (rule "notRight" (formula "5")) + (rule "dominatesNotEqualLeft" (formula "3") (ifseqformula "2")) + (rule "false_right" (formula "3")) + (rule "dominatesTransitive" (formula "1") (ifseqformula "2")) + (rule "close" (formula "4") (ifseqformula "1")) + ) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_repfpElement.proof b/key.core/tacletProofs/universe/Taclet_repfpElement.proof new file mode 100644 index 0000000000..cfc7fb96f8 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_repfpElement.proof @@ -0,0 +1,103 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "repfpElement" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "47") + +(branch "dummy ID" +(rule "repfpDef" (formula "1") (term "2,0") (inst "y=y") (userinteraction)) +(rule "eqSymm" (formula "1") (term "1,1")) +(rule "elementOfUnion" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) +(rule "eqSymm" (formula "1") (term "0,0")) +(rule "elementOfInfiniteUnion" (formula "1") (term "1,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "commute_or" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) +(rule "closeTrue" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_repfpSubset.proof b/key.core/tacletProofs/universe/Taclet_repfpSubset.proof new file mode 100644 index 0000000000..cfef7b2466 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_repfpSubset.proof @@ -0,0 +1,121 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "repfpSubset" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "113") + +(branch "dummy ID" + (builtin "One Step Simplification" (formula "1") (newnames "f_y,f_x")) +(rule "impRight" (formula "1")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "subsetToElementOfRight" (formula "2") (inst "ov=ov") (inst "fv=fv")) +(rule "allRight" (formula "2") (inst "sk=ov_0")) +(rule "allRight" (formula "2") (inst "sk=fv_0")) +(rule "impRight" (formula "2")) +(rule "repfpElement" (formula "1")) +(rule "repfpElement" (formula "3")) +(rule "orRight" (formula "3")) +(rule "cut_direct" (formula "1") (term "1")) +(branch "CUT: ov_0 = f_y TRUE" + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "applyEqRigid" (formula "4") (term "0") (ifseqformula "1")) + (rule "dominatesNotEqualLeft" (formula "4") (ifseqformula "2")) + (rule "false_right" (formula "4")) + (rule "applyEqRigid" (formula "3") (term "1") (ifseqformula "1")) + (rule "close" (formula "3") (ifseqformula "2")) +) +(branch "CUT: ov_0 = f_y FALSE" + (builtin "One Step Simplification" (formula "1")) + (rule "dominatesNotEqualLeft" (formula "3") (ifseqformula "1")) + (rule "false_right" (formula "3")) + (rule "dominatesTransitive" (formula "1") (ifseqformula "2")) + (rule "close" (formula "4") (ifseqformula "1")) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_sameLevelUndom.proof b/key.core/tacletProofs/universe/Taclet_sameLevelUndom.proof new file mode 100644 index 0000000000..54bafbbaa3 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_sameLevelUndom.proof @@ -0,0 +1,363 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "sameLevelUndom" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "465") + +(branch "dummy ID" +(rule "undomSymm" (formula "1") (term "0,0") (userinteraction)) +(rule "impRight" (formula "1")) +(rule "orRight" (formula "2")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "3")) +(rule "andLeft" (formula "1")) +(rule "undomDef" (formula "3") (userinteraction)) +(rule "andRight" (formula "3") (userinteraction)) +(branch "Case 1" + (rule "andRight" (formula "3") (userinteraction)) + (branch "Case 1" + (rule "notRight" (formula "3") (userinteraction)) + (rule "dominatesDef" (formula "1") (inst "n=n") (userinteraction)) + (rule "exLeft" (formula "1") (inst "sk=n_0") (userinteraction)) + (rule "owns2Dominates" (formula "2") (userinteraction)) + (rule "owns2Dominates" (formula "4") (userinteraction)) + (rule "dominatesDef" (formula "4") (inst "n=n") (userinteraction)) + (rule "dominatesDef" (formula "2") (inst "n=n") (userinteraction)) + (rule "exLeft" (formula "2") (inst "sk=n_1") (userinteraction)) + (rule "exLeft" (formula "4") (inst "sk=n_2") (userinteraction)) + (rule "dominatesDepthTransitive" (formula "1") (ifseqformula "4") (userinteraction)) + (rule "cut" (inst "cutFormula=(add(n_2, n_0) = n_1)<>") (userinteraction)) + (branch "CUT: n_2 + n_0 = n_1 TRUE" + (rule "cut" (inst "cutFormula=(n_1 = Z(1(#)))<>") (userinteraction)) + (branch "CUT: n_1 = 1 TRUE" + (rule "cut" (inst "cutFormula=(n_2 = Z(1(#)))<>") (userinteraction)) + (branch "CUT: n_2 = 1 TRUE" + (rule "dominatesDepthDef" (formula "5") (inst "ov=ov") (userinteraction)) + (rule "eqSymm" (formula "5") (term "1,2")) + (rule "eqSymm" (formula "5") (term "0,0,2,2")) + (rule "eqSymm" (formula "10")) + (rule "polySimp_homoEq" (formula "3")) + (rule "polySimp_elimSub" (formula "5") (term "2,1,0,2,2")) + (rule "mul_literals" (formula "5") (term "1,2,1,0,2,2")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0")) + (rule "polySimp_addComm0" (formula "4") (term "2")) + (rule "polySimp_addComm0" (formula "5") (term "2,1,0,2,2")) + (rule "polySimp_addComm0" (formula "3") (term "1,1,0")) + (rule "polySimp_rightDist" (formula "3") (term "1,0")) + (rule "polySimp_mulComm0" (formula "3") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "3") (term "0")) + (rule "polySimp_addComm0" (formula "3") (term "0,0")) + (rule "applyEq" (formula "4") (term "1,2") (ifseqformula "1")) + (rule "polySimp_addComm0" (formula "4") (term "2")) + (rule "applyEqRigid" (formula "5") (term "0,1,2") (ifseqformula "7")) + (rule "eqSymm" (formula "5") (term "1,2")) + (rule "applyEq" (formula "3") (term "0,1,0") (ifseqformula "1")) + (rule "mul_literals" (formula "3") (term "1,0")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "polySimp_addComm0" (formula "3") (term "0,0")) + (rule "applyEqRigid" (formula "8") (term "2") (ifseqformula "1")) + (rule "applyEqRigid" (formula "6") (term "2") (ifseqformula "2")) + (rule "applyEqRigid" (formula "3") (term "1,0") (ifseqformula "2")) + (rule "polySimp_addComm1" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "0,0")) + (rule "add_zero_left" (formula "3") (term "0")) + (rule "polySimp_invertEq" (formula "3")) + (rule "times_zero_2" (formula "3") (term "1")) + (rule "polySimp_mulLiterals" (formula "3") (term "0")) + (rule "polySimp_elimOne" (formula "3") (term "0")) + (rule "applyEqRigid" (formula "5") (term "1,2,1,0,2,2") (ifseqformula "3")) + (rule "add_zero_right" (formula "5") (term "2,1,0,2,2")) + (rule "applyEq" (formula "5") (term "0,0,2") (ifseqformula "3")) + (rule "equal_literals" (formula "5") (term "0,2")) + (builtin "One Step Simplification" (formula "5")) + (rule "applyEq" (formula "4") (term "1,2") (ifseqformula "3")) + (rule "add_zero_right" (formula "4") (term "2")) + (rule "applyEqRigid" (formula "4") (term "0,0") (ifseqformula "3")) + (rule "leq_literals" (formula "4") (term "0")) + (builtin "One Step Simplification" (formula "4")) + (rule "closeFalse" (formula "4")) + ) + (branch "CUT: n_2 = 1 FALSE" + (rule "dominatesSingleDepth" (formula "7") (inst "m=m") (userinteraction)) + (rule "allLeft" (formula "7") (inst "t=Z(1(#))") (userinteraction)) + (rule "dominatesDepthDef" (formula "7") (term "0") (inst "ov=ov") (userinteraction)) + (builtin "One Step Simplification" (formula "7")) + (rule "leq_literals" (formula "7") (term "0,0")) + (builtin "One Step Simplification" (formula "7")) + (rule "eqSymm" (formula "12")) + (rule "eqSymm" (formula "7") (term "0")) + (rule "eqSymm" (formula "7") (term "1")) + (rule "replace_known_left" (formula "7") (term "0") (ifseqformula "10")) + (builtin "One Step Simplification" (formula "7") (ifInst "" (formula "11"))) + (rule "closeFalse" (formula "7")) + ) + ) + (branch "CUT: n_1 = 1 FALSE" + (rule "dominatesSingleDepth" (formula "4") (inst "m=m") (userinteraction)) + (rule "allLeft" (formula "4") (inst "t=Z(1(#))") (userinteraction)) + (rule "dominatesDepthDef" (formula "4") (term "0") (inst "ov=ov") (userinteraction)) + (builtin "One Step Simplification" (formula "4")) + (rule "leq_literals" (formula "4") (term "0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "eqSymm" (formula "11")) + (rule "eqSymm" (formula "4") (term "1")) + (rule "eqSymm" (formula "4") (term "0")) + (rule "replace_known_left" (formula "4") (term "0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "10"))) + (rule "closeFalse" (formula "4")) + ) + ) + (branch "CUT: n_2 + n_0 = n_1 FALSE" + (rule "dominatesSingleDepth" (formula "1") (inst "m=m") (userinteraction)) + (rule "allLeft" (formula "1") (inst "t=n_1") (userinteraction)) + (rule "eqSymm" (formula "10")) + (rule "replace_known_left" (formula "1") (term "0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "1")) + (rule "polySimp_homoEq" (formula "9")) + (rule "polySimp_homoEq" (formula "1")) + (rule "polySimp_mulComm0" (formula "9") (term "1,0")) + (rule "polySimp_addComm0" (formula "2") (term "1,1,0")) + (rule "polySimp_addComm0" (formula "3") (term "2")) + (rule "polySimp_addComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "9") (term "1,1,0")) + (rule "polySimp_addComm1" (formula "1") (term "0")) + (rule "polySimp_rightDist" (formula "9") (term "1,0")) + (rule "polySimp_mulComm0" (formula "9") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "9") (term "0")) + (rule "polySimp_addComm0" (formula "9") (term "0,0")) + (rule "polySimp_sepPosMonomial" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1")) + (rule "polySimp_elimOne" (formula "1") (term "1,1")) + (rule "polySimp_mulComm0" (formula "1") (term "0,1")) + (rule "applyEq" (formula "7") (term "2") (ifseqformula "1")) + (rule "applyEq" (formula "3") (term "1,2") (ifseqformula "1")) + (rule "polySimp_addAssoc" (formula "3") (term "2")) + (rule "polySimp_pullOutFactor1" (formula "3") (term "0,2")) + (rule "add_literals" (formula "3") (term "1,0,2")) + (rule "times_zero_1" (formula "3") (term "0,2")) + (rule "add_zero_left" (formula "3") (term "2")) + (rule "applyEqRigid" (formula "8") (term "0,1,0") (ifseqformula "1")) + (rule "polySimp_pullOutFactor1" (formula "8") (term "0")) + (rule "add_literals" (formula "8") (term "1,0")) + (rule "times_zero_1" (formula "8") (term "0")) + (builtin "One Step Simplification" (formula "8")) + (rule "closeTrue" (formula "8")) + ) + ) + (branch "Case 2" + (rule "notRight" (formula "3") (userinteraction)) + (rule "dominatesDef" (formula "1") (inst "n=n") (userinteraction)) + (rule "exLeft" (formula "1") (inst "sk=n_0") (userinteraction)) + (rule "owns2Dominates" (formula "2") (userinteraction)) + (rule "dominatesDef" (formula "2") (inst "n=n") (userinteraction)) + (rule "exLeft" (formula "2") (inst "sk=n_1") (userinteraction)) + (rule "dominatesDepthTransitive" (formula "1") (ifseqformula "2") (userinteraction)) + (rule "cut" (inst "cutFormula=(add(n_1, n_0) = Z(1(#)))<>") (userinteraction)) + (branch "CUT: n_1 + n_0 = 1 TRUE" + (rule "cut" (inst "cutFormula=(n_1 = Z(1(#)))<>") (userinteraction)) + (branch "CUT: n_1 = 1 TRUE" + (rule "applyEqRigid" (formula "2") (term "0,0") (ifseqformula "1") (userinteraction)) + (rule "cut" (inst "cutFormula=(n_0 = Z(0(#)))<>") (userinteraction)) + (branch "CUT: n_0 = 0 TRUE" + (rule "dominatesDepthDef" (formula "5") (inst "ov=ov") (userinteraction)) + (rule "eqSymm" (formula "5") (term "1,2")) + (rule "eqSymm" (formula "5") (term "0,0,2,2")) + (rule "eqSymm" (formula "9")) + (rule "polySimp_elimSub" (formula "5") (term "2,1,0,2,2")) + (rule "mul_literals" (formula "5") (term "1,2,1,0,2,2")) + (rule "polySimp_homoEq" (formula "3")) + (rule "polySimp_mulComm0" (formula "3") (term "1,0")) + (rule "polySimp_addComm0" (formula "4") (term "2")) + (rule "polySimp_addComm0" (formula "5") (term "2,1,0,2,2")) + (rule "polySimp_rightDist" (formula "3") (term "1,0")) + (rule "mul_literals" (formula "3") (term "0,1,0")) + (rule "owns2Dominates" (formula "8")) + (rule "polySimp_addAssoc" (formula "3") (term "0")) + (rule "add_literals" (formula "3") (term "0,0")) + (rule "add_zero_left" (formula "3") (term "0")) + (rule "applyEqRigid" (formula "5") (term "1,2,1,0,2,2") (ifseqformula "1")) + (rule "add_zero_right" (formula "5") (term "2,1,0,2,2")) + (rule "applyEqRigid" (formula "3") (term "0,0") (ifseqformula "1")) + (rule "times_zero_2" (formula "3") (term "0")) + (builtin "One Step Simplification" (formula "3")) + (rule "true_left" (formula "3")) + (rule "applyEq" (formula "4") (term "0,0") (ifseqformula "1")) + (rule "leq_literals" (formula "4") (term "0")) + (builtin "One Step Simplification" (formula "4")) + (rule "closeFalse" (formula "4")) + ) + (branch "CUT: n_0 = 0 FALSE" + (rule "eqSymm" (formula "9")) + (rule "polySimp_homoEq" (formula "2")) + (rule "polySimp_mulComm0" (formula "2") (term "1,0")) + (rule "polySimp_addComm0" (formula "3") (term "2")) + (rule "polySimp_rightDist" (formula "2") (term "1,0")) + (rule "mul_literals" (formula "2") (term "0,1,0")) + (rule "polySimp_addAssoc" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "0,0")) + (rule "add_zero_left" (formula "2") (term "0")) + (rule "owns2Dominates" (formula "7")) + (rule "applyEq" (formula "3") (term "1,2") (ifseqformula "1")) + (rule "polySimp_addComm0" (formula "3") (term "2")) + (rule "applyEq" (formula "5") (term "2") (ifseqformula "1")) + (rule "polySimp_invertEq" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "0")) + (rule "times_zero_2" (formula "2") (term "1")) + (rule "polySimp_elimOne" (formula "2") (term "0")) + (rule "close" (formula "9") (ifseqformula "2")) + ) + ) + (branch "CUT: n_1 = 1 FALSE" + (rule "dominatesSingleDepth" (formula "4") (inst "m=m") (userinteraction)) + (rule "allLeft" (formula "4") (inst "t=Z(1(#))") (userinteraction)) + (rule "dominatesDepthDef" (formula "4") (term "0") (inst "ov=ov") (userinteraction)) + (builtin "One Step Simplification" (formula "4")) + (rule "leq_literals" (formula "4") (term "0,0")) + (builtin "One Step Simplification" (formula "4")) + (rule "eqSymm" (formula "10")) + (rule "eqSymm" (formula "4") (term "0")) + (rule "eqSymm" (formula "4") (term "1")) + (rule "replace_known_left" (formula "4") (term "0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "9"))) + (rule "closeFalse" (formula "4")) + ) + ) + (branch "CUT: n_1 + n_0 = 1 FALSE" + (rule "dominatesSingleDepth" (formula "1") (inst "m=m") (userinteraction)) + (rule "allLeft" (formula "1") (inst "t=Z(1(#))") (userinteraction)) + (rule "dominatesDepthDef" (formula "1") (term "0") (inst "ov=ov") (userinteraction)) + (builtin "One Step Simplification" (formula "1")) + (rule "leq_literals" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) + (rule "eqSymm" (formula "9")) + (rule "eqSymm" (formula "1") (term "0")) + (rule "replace_known_left" (formula "1") (term "0") (ifseqformula "7")) + (builtin "One Step Simplification" (formula "1")) + (rule "polySimp_homoEq" (formula "8")) + (rule "polySimp_homoEq" (formula "1")) + (rule "mul_literals" (formula "1") (term "1,0")) + (rule "polySimp_mulComm0" (formula "8") (term "1,0")) + (rule "polySimp_addComm0" (formula "2") (term "1,1,0")) + (rule "polySimp_addComm0" (formula "3") (term "2")) + (rule "polySimp_addComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "8") (term "1,1,0")) + (rule "polySimp_addComm1" (formula "1") (term "0")) + (rule "polySimp_addComm0" (formula "1") (term "0,0")) + (rule "polySimp_rightDist" (formula "8") (term "1,0")) + (rule "polySimp_mulComm0" (formula "8") (term "0,1,0")) + (rule "owns2Dominates" (formula "7")) + (rule "polySimp_addAssoc" (formula "9") (term "0")) + (rule "polySimp_sepPosMonomial" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "mul_literals" (formula "1") (term "0,1")) + (rule "applyEqRigid" (formula "5") (term "2") (ifseqformula "1")) + (rule "applyEq" (formula "3") (term "1,2") (ifseqformula "1")) + (rule "polySimp_addAssoc" (formula "3") (term "2")) + (rule "polySimp_addComm0" (formula "3") (term "0,2")) + (rule "polySimp_pullOutFactor1b" (formula "3") (term "2")) + (rule "add_literals" (formula "3") (term "1,1,2")) + (rule "times_zero_1" (formula "3") (term "1,2")) + (rule "add_zero_right" (formula "3") (term "2")) + (rule "applyEq" (formula "9") (term "0,1,0") (ifseqformula "1")) + (rule "polySimp_pullOutFactor1" (formula "9") (term "0")) + (rule "add_literals" (formula "9") (term "1,0")) + (rule "times_zero_1" (formula "9") (term "0")) + (builtin "One Step Simplification" (formula "9")) + (rule "closeTrue" (formula "9")) + ) + ) +) +(branch "Case 2" + (rule "notRight" (formula "3")) + (rule "eqSymm" (formula "4")) + (rule "close" (formula "4") (ifseqformula "1")) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedAnon.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedAnon.proof new file mode 100644 index 0000000000..f5ffd6ff44 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedAnon.proof @@ -0,0 +1,110 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfDominatedAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) +(keyLog "1" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "18") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_u,f_h2,f_o,f_f")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "eqSymm" (formula "2")) +(rule "dominatesSameNotUndom" (formula "1") (ifseqformula "1")) +(rule "pullOutSelect" (formula "3") (term "1") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "5"))) +(rule "repfpElement" (formula "1") (term "0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0")) +(rule "dominatesInverse" (formula "1") (term "0,0,0,0,0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "1")) +(rule "dominatesNotEqualLeft" (formula "1") (term "0,0,0,0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "1")) +(rule "ifthenelse_negated" (formula "1") (term "0")) +(rule "close" (formula "4") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedAnonEQ.proof new file mode 100644 index 0000000000..adaaa3ad53 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedAnonEQ.proof @@ -0,0 +1,110 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfDominatedAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "20") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_o,f_f,f_h,f_h2,f_u")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "3")) +(rule "dominatesSameNotUndom" (formula "2") (ifseqformula "2")) +(rule "pullOutSelect" (formula "4") (term "1") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "6"))) +(rule "repfpElement" (formula "1") (term "0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0")) +(rule "dominatesNotEqualLeft" (formula "1") (term "1,0,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1")) +(rule "dominatesInverse" (formula "1") (term "0,0,0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1")) +(rule "ifthenelse_negated" (formula "1") (term "0")) +(rule "close" (formula "5") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedCreatedAnon.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedCreatedAnon.proof new file mode 100644 index 0000000000..34440d97bf --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedCreatedAnon.proof @@ -0,0 +1,109 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfDominatedCreatedAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "19") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_h3,f_u,f_h2,f_o,f_f")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "eqSymm" (formula "2")) +(rule "dominatesSameNotUndom" (formula "1") (ifseqformula "1")) +(rule "pullOutSelect" (formula "3") (term "1") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "5"))) +(rule "createdRepfpElement" (formula "1") (term "0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0,0")) +(rule "dominatesInverse" (formula "1") (term "0,0,0,0,0,0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "1")) +(rule "dominatesNotEqualLeft" (formula "1") (term "0,0,0,0,0") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "1")) +(rule "ifthenelse_negated" (formula "1") (term "0")) +(rule "close" (formula "4") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedCreatedAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedCreatedAnonEQ.proof new file mode 100644 index 0000000000..851c23c9de --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatedCreatedAnonEQ.proof @@ -0,0 +1,112 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfDominatedCreatedAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "18") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_o,f_f,f_h,f_h2,f_h3,f_u")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "3")) +(rule "dominatesSameNotUndom" (formula "2") (ifseqformula "2")) +(rule "pullOutSelect" (formula "4") (term "2,0") (inst "selectSK=f_f_0")) +(rule "pullOutSelect" (formula "5") (term "1") (inst "selectSK=f_f_1")) +(rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "7"))) +(rule "applyEq" (formula "1") (term "1,0") (ifseqformula "2")) +(rule "createdRepfpElement" (formula "1") (term "0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0,0")) +(rule "dominatesNotEqualLeft" (formula "1") (term "1,0,0,0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1")) +(rule "dominatesInverse" (formula "1") (term "0,0,0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "1")) +(rule "ifthenelse_negated" (formula "1") (term "0")) +(rule "close" (formula "6") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingCreatedRepfpComplementAnon.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingCreatedRepfpComplementAnon.proof new file mode 100644 index 0000000000..e2c15fcbf5 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingCreatedRepfpComplementAnon.proof @@ -0,0 +1,128 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfDominatingCreatedRepfpComplementAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "106") + +(branch "dummy ID" +(rule "impRight" (formula "1")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "selectOfAnon" (formula "2") (term "0") (userinteraction)) +(rule "elementOfSetMinus" (formula "2") (term "0,0,0,0") (userinteraction)) +(rule "createdRepfpElement" (formula "2") (term "0,1,0,0,0,0") (userinteraction)) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "1")) (ifInst "" (formula "3")) (userinteraction)) +(rule "ifthenelse_split" (formula "2") (term "0") (userinteraction)) +(branch " ¬f_o.@f_h3 = TRUE ∧ ¬f_f = java.lang.Object:: ∨ ¬f_o.@f_h = TRUE TRUE" + (rule "eqSymm" (formula "3")) + (builtin "One Step Simplification" (formula "3")) + (rule "orRight" (formula "3")) + (rule "notRight" (formula "3")) + (rule "andLeft" (formula "1")) + (rule "eqSymm" (formula "5")) + (rule "replace_known_left" (formula "3") (term "0,1") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "3")) + (rule "andLeft" (formula "3")) + (rule "notLeft" (formula "3")) + (rule "notLeft" (formula "3")) + (rule "replace_known_right" (formula "2") (term "0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "4"))) + (rule "closeFalse" (formula "2")) +) +(branch " ¬f_o.@f_h3 = TRUE ∧ ¬f_f = java.lang.Object:: ∨ ¬f_o.@f_h = TRUE FALSE" + (rule "orRight" (formula "2")) + (rule "notRight" (formula "3")) + (rule "eqSymm" (formula "4")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "1"))) + (rule "orRight" (formula "4")) + (rule "orRight" (formula "4")) + (rule "replace_known_right" (formula "3") (term "0,1") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "4"))) + (rule "closeTrue" (formula "3")) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingCreatedRepfpComplementAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingCreatedRepfpComplementAnonEQ.proof new file mode 100644 index 0000000000..aac04fa9b4 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingCreatedRepfpComplementAnonEQ.proof @@ -0,0 +1,130 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfDominatingCreatedRepfpComplementAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "227") + +(branch "dummy ID" +(rule "impRight" (formula "1")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "selectOfAnonEQ" (formula "3") (term "0") (ifseqformula "2") (userinteraction)) +(rule "elementOfSetMinus" (formula "3") (term "0,0,0,0") (userinteraction)) +(rule "createdRepfpElement" (formula "3") (term "0,1,0,0,0,0") (userinteraction)) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "1")) (ifInst "" (formula "4")) (userinteraction)) +(rule "ifthenelse_split" (formula "3") (term "0") (userinteraction)) +(branch " ¬f_o.@f_h3 = TRUE ∧ ¬f_f = java.lang.Object:: ∨ ¬f_o.@f_h = TRUE TRUE" + (rule "orLeft" (formula "1") (userinteraction)) + (branch " ¬f_o.@f_h3 = TRUE ∧ ¬f_f = java.lang.Object::" + (rule "andLeft" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "eqSymm" (formula "5")) + (builtin "One Step Simplification" (formula "5") (ifInst "" (formula "4")) (ifInst "" (formula "3"))) + (rule "closeTrue" (formula "5")) + ) + (branch "¬f_o.@f_h = TRUE" + (rule "notLeft" (formula "1")) + (rule "eqSymm" (formula "4")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "3"))) + (rule "closeTrue" (formula "4")) + ) +) +(branch " ¬f_o.@f_h3 = TRUE ∧ ¬f_f = java.lang.Object:: ∨ ¬f_o.@f_h = TRUE FALSE" + (rule "orRight" (formula "3")) + (rule "notRight" (formula "4")) + (rule "eqSymm" (formula "5")) + (builtin "One Step Simplification" (formula "5") (ifInst "" (formula "1"))) + (rule "orRight" (formula "5")) + (rule "orRight" (formula "5")) + (rule "replace_known_right" (formula "4") (term "0,0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "6"))) + (rule "closeTrue" (formula "4")) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingRepfpComplementAnon.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingRepfpComplementAnon.proof new file mode 100644 index 0000000000..b307adc64d --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingRepfpComplementAnon.proof @@ -0,0 +1,115 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfDominatingRepfpComplementAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "29") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_u,f_h2,f_o,f_f")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "eqSymm" (formula "2")) +(rule "dominatesSameNotUndom" (formula "1") (ifseqformula "1")) +(rule "pullOutSelect" (formula "3") (term "0,0,0") (inst "selectSK=java_lang_Object_created__0")) +(rule "pullOutSelect" (formula "4") (term "1,0") (inst "selectSK=f_f_0")) +(rule "pullOutSelect" (formula "5") (term "2,0") (inst "selectSK=f_f_1")) +(rule "pullOutSelect" (formula "6") (term "1") (inst "selectSK=f_f_2")) +(rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "8"))) +(rule "applyEq" (formula "1") (term "1,0") (ifseqformula "2")) +(rule "applyEq" (formula "1") (term "0,0,1,0,0") (ifseqformula "4")) +(rule "applyEq" (formula "1") (term "2,0") (ifseqformula "3")) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "repfpElement" (formula "1") (term "0,0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0,0")) +(rule "replace_known_left" (formula "1") (term "0,0,0,0,0,0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "1")) +(rule "ifthenelse_negated" (formula "1") (term "0")) +(rule "close" (formula "7") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingRepfpComplementAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingRepfpComplementAnonEQ.proof new file mode 100644 index 0000000000..6197caee21 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfDominatingRepfpComplementAnonEQ.proof @@ -0,0 +1,116 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfDominatingRepfpComplementAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "45") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_o,f_f,f_h,f_h2,f_u")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "eqSymm" (formula "3")) +(rule "dominatesSameNotUndom" (formula "1") (ifseqformula "1")) +(rule "pullOutSelect" (formula "4") (term "1,0") (inst "selectSK=f_f_0")) +(rule "pullOutSelect" (formula "5") (term "0,0,0") (inst "selectSK=java_lang_Object_created__0")) +(rule "pullOutSelect" (formula "6") (term "2,0") (inst "selectSK=f_f_1")) +(rule "pullOutSelect" (formula "7") (term "1") (inst "selectSK=f_f_2")) +(rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "6")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "9"))) +(rule "applyEq" (formula "1") (term "1,0") (ifseqformula "2")) +(rule "applyEq" (formula "1") (term "0,0,1,0,0") (ifseqformula "3")) +(rule "applyEq" (formula "1") (term "2,0") (ifseqformula "4")) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "repfpElement" (formula "1") (term "0,0,0,0,0")) +(rule "eqSymm" (formula "1") (term "1,0,0,0,0,0")) +(rule "replace_known_left" (formula "1") (term "0,0,0,0,0,0") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "1")) +(rule "ifthenelse_negated" (formula "1") (term "0")) +(rule "close" (formula "8") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfCreatedRepfpComplementAnon.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfCreatedRepfpComplementAnon.proof new file mode 100644 index 0000000000..5976f94e36 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfCreatedRepfpComplementAnon.proof @@ -0,0 +1,135 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfSelfCreatedRepfpComplementAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "33") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_h3,f_o,f_h2,f_f")) +(rule "notLeft" (formula "1")) +(rule "selectOfAnon" (formula "1") (term "0") (userinteraction)) +(rule "ifthenelse_split" (formula "1") (term "0") (userinteraction)) +(branch " (f_o, f_f) ∊ allLocs ∖ createdRepfp(f_h3, f_o) ∧ ¬f_f = java.lang.Object:: ∨ (f_o, f_f) ∊ freshLocs(f_h) TRUE" + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3"))) + (rule "eqSymm" (formula "2")) + (builtin "One Step Simplification" (formula "2")) + (rule "orRight" (formula "2")) + (rule "notRight" (formula "2")) + (rule "andLeft" (formula "1")) + (rule "eqSymm" (formula "4")) + (rule "replace_known_left" (formula "3") (term "0,1") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "3")) + (rule "andLeft" (formula "3")) + (rule "notLeft" (formula "4")) + (rule "replace_known_right" (formula "2") (term "1") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "2")) + (rule "elementOfSetMinus" (formula "3")) + (builtin "One Step Simplification" (formula "3")) + (rule "notLeft" (formula "3")) + (rule "createdRepfpElement" (formula "3")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "2"))) + (rule "closeTrue" (formula "3")) +) +(branch " (f_o, f_f) ∊ allLocs ∖ createdRepfp(f_h3, f_o) ∧ ¬f_f = java.lang.Object:: ∨ (f_o, f_f) ∊ freshLocs(f_h) FALSE" + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3"))) + (rule "orRight" (formula "1")) + (rule "notRight" (formula "2")) + (rule "eqSymm" (formula "3")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "1"))) + (rule "orRight" (formula "3")) + (rule "orRight" (formula "3")) + (rule "replace_known_right" (formula "2") (term "0,1") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "2")) + (rule "elementOfSetMinus" (formula "2")) + (builtin "One Step Simplification" (formula "2")) + (rule "notRight" (formula "2")) + (rule "createdRepfpElement" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "3"))) + (rule "closeFalse" (formula "1")) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfCreatedRepfpComplementAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfCreatedRepfpComplementAnonEQ.proof new file mode 100644 index 0000000000..2c0c9996f3 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfCreatedRepfpComplementAnonEQ.proof @@ -0,0 +1,136 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfSelfCreatedRepfpComplementAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "87") + +(branch "dummy ID" +(rule "impRight" (formula "1")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "selectOfAnonEQ" (formula "2") (term "0") (ifseqformula "1") (userinteraction)) +(rule "ifthenelse_split" (formula "2") (term "0") (userinteraction)) +(branch " (f_o, f_f) ∊ allLocs ∖ createdRepfp(f_h3, f_o) ∧ ¬f_f = java.lang.Object:: ∨ (f_o, f_f) ∊ freshLocs(f_h) TRUE" + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "4"))) + (rule "eqSymm" (formula "3")) + (builtin "One Step Simplification" (formula "3")) + (rule "orRight" (formula "3")) + (rule "notRight" (formula "3")) + (rule "andLeft" (formula "1")) + (rule "eqSymm" (formula "5")) + (rule "replace_known_left" (formula "3") (term "0,1") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "3")) + (rule "andLeft" (formula "3")) + (rule "notLeft" (formula "4")) + (rule "replace_known_right" (formula "2") (term "1") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "2")) + (rule "elementOfSetMinus" (formula "3")) + (builtin "One Step Simplification" (formula "3")) + (rule "notLeft" (formula "3")) + (rule "createdRepfpElement" (formula "4")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "2"))) + (rule "closeTrue" (formula "4")) +) +(branch " (f_o, f_f) ∊ allLocs ∖ createdRepfp(f_h3, f_o) ∧ ¬f_f = java.lang.Object:: ∨ (f_o, f_f) ∊ freshLocs(f_h) FALSE" + (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "4"))) + (rule "orRight" (formula "2")) + (rule "notRight" (formula "3")) + (rule "eqSymm" (formula "4")) + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "1"))) + (rule "orRight" (formula "4")) + (rule "orRight" (formula "4")) + (rule "replace_known_right" (formula "3") (term "0,1") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "3")) + (rule "elementOfSetMinus" (formula "3")) + (builtin "One Step Simplification" (formula "3")) + (rule "notRight" (formula "3")) + (rule "createdRepfpElement" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "4"))) + (rule "closeFalse" (formula "1")) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfRepfpComplementAnon.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfRepfpComplementAnon.proof new file mode 100644 index 0000000000..bcd21f44d0 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfRepfpComplementAnon.proof @@ -0,0 +1,107 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfSelfRepfpComplementAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "27") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_o,f_h2,f_f")) +(rule "notLeft" (formula "1")) +(rule "eqSymm" (formula "1")) +(rule "pullOutSelect" (formula "1") (term "0,0,0") (inst "selectSK=java_lang_Object_created__0")) +(rule "pullOutSelect" (formula "2") (term "1") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "4"))) +(rule "applyEq" (formula "1") (term "0,0,1,0,0") (ifseqformula "2")) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "repfpElement" (formula "1") (term "0,0,0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "ifthenelse_negated" (formula "1") (term "0")) +(rule "close" (formula "3") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfRepfpComplementAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfRepfpComplementAnonEQ.proof new file mode 100644 index 0000000000..69a49c33fc --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_simplifySelectOfSelfRepfpComplementAnonEQ.proof @@ -0,0 +1,112 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "simplifySelectOfSelfRepfpComplementAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "34") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_o,f_f,f_h,f_h2")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "eqSymm" (formula "2")) +(rule "pullOutSelect" (formula "2") (term "2,0") (inst "selectSK=f_f_0")) +(rule "pullOutSelect" (formula "3") (term "0,0,0") (inst "selectSK=java_lang_Object_created__0")) +(rule "pullOutSelect" (formula "4") (term "1,0") (inst "selectSK=f_f_1")) +(rule "pullOutSelect" (formula "5") (term "1") (inst "selectSK=f_f_2")) +(rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "7"))) +(rule "applyEq" (formula "1") (term "2,0") (ifseqformula "2")) +(rule "applyEq" (formula "1") (term "1,0") (ifseqformula "4")) +(rule "applyEq" (formula "1") (term "0,0,1,0,0") (ifseqformula "3")) +(rule "elementOfSetMinus" (formula "1") (term "0,0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "repfpElement" (formula "1") (term "0,0,0,0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "ifthenelse_negated" (formula "1") (term "0")) +(rule "close" (formula "6") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_undomDisjointCreatedRepfp.proof b/key.core/tacletProofs/universe/Taclet_undomDisjointCreatedRepfp.proof new file mode 100644 index 0000000000..10e417364c --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_undomDisjointCreatedRepfp.proof @@ -0,0 +1,105 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "undomDisjointCreatedRepfp" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "240") + +(branch "dummy ID" +(rule "createdRepfpDef" (formula "1") (term "0,0,0,0") (inst "y=y") (userinteraction)) +(rule "createdRepfpDef" (formula "1") (term "1,0,0,0") (inst "y=y") (userinteraction)) +(rule "impRight" (formula "1")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "commuteIntersection" (formula "2") (term "0,0")) +(rule "commuteIntersection" (formula "2") (term "1,0")) +(rule "associativeLawIntersect" (formula "2") (term "0")) +(rule "commuteIntersection_2" (formula "2") (term "0,0")) +(rule "undomDisjointRepfp" (formula "2") (term "0,0,0") (ifseqformula "1")) + (builtin "One Step Simplification" (formula "2")) +(rule "closeTrue" (formula "2")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_undomDisjointCreatedRepfpInv.proof b/key.core/tacletProofs/universe/Taclet_undomDisjointCreatedRepfpInv.proof new file mode 100644 index 0000000000..4a5e6a10cd --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_undomDisjointCreatedRepfpInv.proof @@ -0,0 +1,150 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "undomDisjointCreatedRepfpInv" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "148") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h1,f_x,f_h2,f_y")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "equalityToElementOfRight" (formula "2") (inst "ov=ov") (inst "fv=fv")) + (builtin "One Step Simplification" (formula "2")) +(rule "allRight" (formula "2") (inst "sk=ov_0")) +(rule "allRight" (formula "2") (inst "sk=fv_0")) +(rule "notRight" (formula "2")) +(rule "elementOfIntersect" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "createdRepfpElement" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "createdRepfpElement" (formula "3")) +(rule "andLeft" (formula "3")) +(rule "pullOutSelect" (formula "2") (term "0") (inst "selectSK=java_lang_Object_created__0")) +(rule "applyEqRigid" (formula "2") (term "1") (ifseqformula "3")) +(rule "pullOutSelect" (formula "5") (term "0") (inst "selectSK=java_lang_Object_created__1")) +(rule "applyEqRigid" (formula "5") (term "1") (ifseqformula "6")) +(rule "hideAuxiliaryEqConcrete" (formula "3")) +(rule "hideAuxiliaryEqConcrete" (formula "5")) +(rule "cut_direct" (formula "1") (term "1")) +(branch "CUT: ov_0 = f_x TRUE" + (builtin "One Step Simplification" (formula "2")) + (rule "true_left" (formula "2")) + (rule "applyEq" (formula "3") (term "0,1") (ifseqformula "1")) + (rule "eqSymm" (formula "3") (term "1")) + (rule "undomNotEqual" (formula "3") (term "1") (ifseqformula "5")) + (builtin "One Step Simplification" (formula "3")) + (rule "dominatesSameNotUndom" (formula "3") (ifseqformula "3")) + (rule "applyEq" (formula "2") (term "1,0") (ifseqformula "1")) + (rule "applyEq" (formula "4") (term "1,0") (ifseqformula "1")) + (rule "applyEq" (formula "3") (term "1") (ifseqformula "1")) + (rule "dominatesSameNotUndom" (formula "3") (ifseqformula "3")) + (rule "undomNotDominates" (formula "3") (ifseqformula "5")) + (rule "closeFalse" (formula "3")) +) +(branch "CUT: ov_0 = f_x FALSE" + (builtin "One Step Simplification" (formula "1")) + (rule "dominatesSameNotUndom" (formula "1") (ifseqformula "1")) + (rule "dominatesNotEqualLeft" (formula "7") (ifseqformula "1")) + (rule "false_right" (formula "7")) + (rule "cut_direct" (formula "3") (term "1")) + (branch "CUT: ov_0 = f_y TRUE" + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "applyEq" (formula "1") (term "1") (ifseqformula "3")) + (rule "undomNotDominatesInv" (formula "1") (ifseqformula "5")) + (rule "closeFalse" (formula "1")) + ) + (branch "CUT: ov_0 = f_y FALSE" + (builtin "One Step Simplification" (formula "3")) + (rule "dominatesSameNotUndom" (formula "3") (ifseqformula "3")) + (rule "dominatesSameNotUndom" (formula "3") (ifseqformula "1")) + (rule "dominatesSameNotUndom" (formula "1") (ifseqformula "3")) + (rule "close" (formula "6") (ifseqformula "5")) + ) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_undomDisjointRepfp.proof b/key.core/tacletProofs/universe/Taclet_undomDisjointRepfp.proof new file mode 100644 index 0000000000..bdcca44a4a --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_undomDisjointRepfp.proof @@ -0,0 +1,138 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "undomDisjointRepfp" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "237") + +(branch "dummy ID" +(rule "undomDef" (formula "1") (term "0,1") (userinteraction)) +(rule "equalityToElementOf" (formula "1") (term "0,0") (inst "ov=ov") (inst "fv=fv") (userinteraction)) +(rule "impRight" (formula "1")) +(rule "notRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "notLeft" (formula "3")) +(rule "notLeft" (formula "2")) +(rule "notLeft" (formula "1")) + (builtin "One Step Simplification" (formula "4") (userinteraction)) +(rule "allRight" (formula "4") (inst "sk=ov_0") (userinteraction)) +(rule "allRight" (formula "4") (inst "sk=fv_0") (userinteraction)) +(rule "notRight" (formula "4") (userinteraction)) +(rule "elementOfIntersect" (formula "1") (userinteraction)) +(rule "andLeft" (formula "1") (userinteraction)) +(rule "repfpElement" (formula "1") (userinteraction)) +(rule "repfpElement" (formula "2") (userinteraction)) +(rule "orLeft" (formula "2") (userinteraction)) +(branch "dominates(f_y, ov_0)" + (rule "orLeft" (formula "1") (userinteraction)) + (branch "dominates(f_x, ov_0)" + (rule "dominatesSameNotUndom" (formula "2") (ifseqformula "1") (userinteraction)) + (rule "undomDef" (formula "3") (userinteraction)) + (rule "eqSymm" (formula "6")) + (rule "eqSymm" (formula "3") (term "0,1")) + (rule "replace_known_right" (formula "3") (term "0,0,0") (ifseqformula "4")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "5")) (ifInst "" (formula "6"))) + (rule "closeTrue" (formula "3")) + ) + (branch "ov_0 = f_x" + (rule "eqSymm" (formula "5")) + (rule "dominatesSameNotUndom" (formula "2") (ifseqformula "2")) + (rule "applyEqRigid" (formula "2") (term "1") (ifseqformula "1")) + (rule "close" (formula "5") (ifseqformula "2")) + ) +) +(branch "ov_0 = f_y" + (rule "eqSymm" (formula "5")) + (rule "applyEqRigid" (formula "1") (term "1,0") (ifseqformula "2")) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "1")) + (rule "applyEq" (formula "1") (term "0") (ifseqformula "2")) + (rule "close" (formula "5") (ifseqformula "1")) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_undomNotDominates.proof b/key.core/tacletProofs/universe/Taclet_undomNotDominates.proof new file mode 100644 index 0000000000..d095b7f857 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_undomNotDominates.proof @@ -0,0 +1,101 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "undomNotDominates" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "58") + +(branch "dummy ID" +(rule "undomDef" (formula "1") (term "0,1") (userinteraction)) +(rule "impRight" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "notLeft" (formula "3")) +(rule "notLeft" (formula "1")) +(rule "close" (formula "3") (ifseqformula "2")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_undomNotDominatesInv.proof b/key.core/tacletProofs/universe/Taclet_undomNotDominatesInv.proof new file mode 100644 index 0000000000..6645db2b1d --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_undomNotDominatesInv.proof @@ -0,0 +1,102 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "undomNotDominatesInv" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "65") + +(branch "dummy ID" +(rule "undomDef" (formula "1") (term "0,1") (userinteraction)) +(rule "impRight" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "notLeft" (formula "3")) +(rule "notLeft" (formula "1")) +(rule "notLeft" (formula "1")) +(rule "close" (formula "2") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_undomNotEqual.proof b/key.core/tacletProofs/universe/Taclet_undomNotEqual.proof new file mode 100644 index 0000000000..73b675805d --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_undomNotEqual.proof @@ -0,0 +1,104 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "undomNotEqual" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "94") + +(branch "dummy ID" +(rule "undomSymm" (formula "1") (term "0,1") (userinteraction)) +(rule "undomDef" (formula "1") (term "0,1") (userinteraction)) +(rule "impRight" (formula "1")) +(rule "notRight" (formula "2")) +(rule "andLeft" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "notLeft" (formula "3")) +(rule "notLeft" (formula "1")) +(rule "notLeft" (formula "1")) +(rule "eqSymm" (formula "1")) +(rule "close" (formula "4") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_undomSymm.proof b/key.core/tacletProofs/universe/Taclet_undomSymm.proof new file mode 100644 index 0000000000..afd16153df --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_undomSymm.proof @@ -0,0 +1,99 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 7000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "undomSymm", + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "fb96158cd902ea794b07f245944d17da701055e2")) + +(autoModeTime "22") + +(branch "dummy ID" +(rule "undomDef" (formula "1") (term "0") (newnames "f_x,f_y") (userinteraction)) +(rule "undomDef" (formula "1") (term "1") (userinteraction)) +(rule "eqSymm" (formula "1") (term "0,1,0")) +(rule "commute_and" (formula "1") (term "0,1")) + (builtin "One Step Simplification" (formula "1")) +(rule "closeTrue" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_undomTransitive.proof b/key.core/tacletProofs/universe/Taclet_undomTransitive.proof new file mode 100644 index 0000000000..df3fcfdcef --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_undomTransitive.proof @@ -0,0 +1,191 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "undomTransitive" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "260") + +(branch "dummy ID" +(rule "undomSymm" (formula "1") (term "0,0,1") (userinteraction)) +(rule "undomDef" (formula "1") (term "0,0,1") (userinteraction)) +(rule "undomDef" (formula "1") (term "0,0") (userinteraction)) +(rule "impRight" (formula "1")) +(rule "orRight" (formula "2")) +(rule "notLeft" (formula "1")) +(rule "notRight" (formula "2")) +(rule "notRight" (formula "3")) +(rule "andLeft" (formula "2")) +(rule "andLeft" (formula "2")) +(rule "notLeft" (formula "4")) +(rule "notLeft" (formula "3")) +(rule "notLeft" (formula "2")) +(rule "andRight" (formula "5") (userinteraction)) +(branch "Case 1" + (rule "andRight" (formula "5") (userinteraction)) + (branch "Case 1" + (rule "notRight" (formula "5") (userinteraction)) + (rule "dominatesDef" (formula "2") (inst "n=n") (userinteraction)) + (rule "dominatesDef" (formula "1") (inst "n=n") (userinteraction)) + (rule "exLeft" (formula "1") (inst "sk=n_0") (userinteraction)) + (rule "exLeft" (formula "2") (inst "sk=n_1") (userinteraction)) + (rule "cut" (inst "cutFormula=gt(n_0, n_1)<>") (userinteraction)) + (branch "CUT: n_0 > n_1 TRUE" + (rule "dominatesLargerDepth" (formula "2") (ifseqformula "1") (ifseqformula "3") (userinteraction)) + (rule "dominatesDepth2Dominates" (formula "2") (userinteraction)) + (rule "andLeft" (formula "2")) + (rule "close" (formula "8") (ifseqformula "3")) + ) + (branch "CUT: n_0 > n_1 FALSE" + (rule "cut" (inst "cutFormula=gt(n_1, n_0)<>") (userinteraction)) + (branch "CUT: n_1 > n_0 TRUE" + (rule "dominatesLargerDepth" (formula "3") (ifseqformula "1") (ifseqformula "2") (userinteraction)) + (rule "dominatesDepth2Dominates" (formula "3") (userinteraction)) + (rule "andLeft" (formula "3")) + (rule "close" (formula "8") (ifseqformula "4")) + ) + (branch "CUT: n_1 > n_0 FALSE" + (rule "cut" (inst "cutFormula=(n_0 = n_1)<>") (userinteraction)) + (branch "CUT: n_0 = n_1 TRUE" + (rule "applyEqReverse" (formula "3") (term "2") (ifseqformula "1") (userinteraction)) + (rule "dominatesSameDepth" (formula "3") (ifseqformula "2") (userinteraction)) + (rule "dominatesSameDepth" (formula "4") (ifseqformula "4") (userinteraction)) + (builtin "One Step Simplification" (formula "4")) + (rule "true_left" (formula "4")) + (rule "eqSymm" (formula "1")) + (rule "eqSymm" (formula "3")) + (rule "close" (formula "9") (ifseqformula "3")) + ) + (branch "CUT: n_0 = n_1 FALSE" + (rule "eqSymm" (formula "3")) + (rule "inEqSimp_gtRight" (formula "4")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "inEqSimp_gtRight" (formula "5")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0")) + (rule "polySimp_addComm0" (formula "1") (term "0")) + (rule "inEqSimp_sepPosMonomial0" (formula "2")) + (rule "polySimp_mulLiterals" (formula "2") (term "1")) + (rule "polySimp_elimOne" (formula "2") (term "1")) + (rule "inEqSimp_sepNegMonomial0" (formula "1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0")) + (rule "polySimp_elimOne" (formula "1") (term "0")) + (rule "inEqSimp_strengthen1" (formula "1") (ifseqformula "5")) + (rule "inEqSimp_contradEq7" (formula "5") (ifseqformula "1")) + (rule "polySimp_mulComm0" (formula "5") (term "1,0,0")) + (rule "polySimp_pullOutFactor1b" (formula "5") (term "0,0")) + (rule "add_literals" (formula "5") (term "1,1,0,0")) + (rule "times_zero_1" (formula "5") (term "1,0,0")) + (rule "add_zero_right" (formula "5") (term "0,0")) + (rule "leq_literals" (formula "5") (term "0")) + (builtin "One Step Simplification" (formula "5")) + (rule "false_right" (formula "5")) + (rule "inEqSimp_contradInEq0" (formula "1") (ifseqformula "2")) + (rule "andLeft" (formula "1")) + (rule "inEqSimp_homoInEq1" (formula "1")) + (rule "polySimp_pullOutFactor1b" (formula "1") (term "0")) + (rule "add_literals" (formula "1") (term "1,1,0")) + (rule "times_zero_1" (formula "1") (term "1,0")) + (rule "add_zero_right" (formula "1") (term "0")) + (rule "leq_literals" (formula "1")) + (rule "closeFalse" (formula "1")) + ) + ) + ) + ) + (branch "Case 2" + (rule "notRight" (formula "5") (userinteraction)) + (rule "dominatesTransitive" (formula "1") (ifseqformula "2") (userinteraction)) + (rule "close" (formula "4") (ifseqformula "1")) + ) +) +(branch "Case 2" + (rule "notRight" (formula "5")) + (rule "eqSymm" (formula "1")) + (rule "dominatesSameNotUndom" (formula "2") (ifseqformula "2")) + (rule "applyEq" (formula "2") (term "1") (ifseqformula "1")) + (rule "close" (formula "4") (ifseqformula "2")) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_variousDisjointComplement.proof b/key.core/tacletProofs/universe/Taclet_variousDisjointComplement.proof new file mode 100644 index 0000000000..5d4c4ab401 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_variousDisjointComplement.proof @@ -0,0 +1,119 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "variousDisjointComplement" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "127") + +(branch "dummy ID" +(rule "disjointDefinition" (formula "1") (term "0") (newnames "f_x,f_y")) +(rule "equiv_right" (formula "1")) +(branch "Case '->'" + (rule "subsetToElementOfRight" (formula "2") (inst "ov=ov") (inst "fv=fv")) + (rule "allRight" (formula "2") (inst "sk=ov_0")) + (rule "allRight" (formula "2") (inst "sk=fv_0")) + (rule "impRight" (formula "2")) + (rule "disjointNotInOtherLocset2" (formula "1") (ifseqformula "2")) + (rule "elementOfSetMinus" (formula "3")) + (builtin "One Step Simplification" (formula "3") (ifInst "" (formula "4"))) + (rule "closeTrue" (formula "3")) +) +(branch "Case '<-'" + (rule "equalityToElementOfRight" (formula "2") (inst "ov=ov") (inst "fv=fv")) + (builtin "One Step Simplification" (formula "2")) + (rule "allRight" (formula "2") (inst "sk=ov_0")) + (rule "allRight" (formula "2") (inst "sk=fv_0")) + (rule "notRight" (formula "2")) + (rule "elementOfIntersect" (formula "1")) + (rule "andLeft" (formula "1")) + (rule "elementOfSetMinus" (formula "1")) + (builtin "One Step Simplification" (formula "1")) + (rule "notLeft" (formula "1")) + (rule "elementOfSubsetImpliesElementOfSuperset" (formula "1") (ifseqformula "2")) + (rule "close" (formula "4") (ifseqformula "1")) +) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_variousDisjointSingleton.proof b/key.core/tacletProofs/universe/Taclet_variousDisjointSingleton.proof new file mode 100644 index 0000000000..37a1ca865e --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_variousDisjointSingleton.proof @@ -0,0 +1,97 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "variousDisjointSingleton" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "14") + +(branch "dummy ID" +(rule "disjointDefinition" (formula "1") (term "0") (newnames "f_s,f_x,f_f")) +(rule "disjointWithSingleton1" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) +(rule "closeTrue" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_variousDisjointSingletonInverse.proof b/key.core/tacletProofs/universe/Taclet_variousDisjointSingletonInverse.proof new file mode 100644 index 0000000000..6285b16607 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_variousDisjointSingletonInverse.proof @@ -0,0 +1,97 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "variousDisjointSingletonInverse" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "46") + +(branch "dummy ID" +(rule "disjointDefinition" (formula "1") (term "0") (newnames "f_x,f_f,f_s")) +(rule "disjointWithSingleton2" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) +(rule "closeTrue" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_variousDisjointUnion.proof b/key.core/tacletProofs/universe/Taclet_variousDisjointUnion.proof new file mode 100644 index 0000000000..c1ce647879 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_variousDisjointUnion.proof @@ -0,0 +1,100 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "variousDisjointUnion" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "15") + +(branch "dummy ID" +(rule "disjointDefinition" (formula "1") (term "0") (newnames "f_x,f_y,f_z")) +(rule "disjointDefinition" (formula "1") (term "1,1")) +(rule "disjointDefinition" (formula "1") (term "0,1")) +(rule "distributeIntersection" (formula "1") (term "0,0")) +(rule "unionEqualsEmpty" (formula "1") (term "0")) + (builtin "One Step Simplification" (formula "1")) +(rule "closeTrue" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_variousDisjointUnionInverse.proof b/key.core/tacletProofs/universe/Taclet_variousDisjointUnionInverse.proof new file mode 100644 index 0000000000..741abc8172 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_variousDisjointUnionInverse.proof @@ -0,0 +1,102 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "variousDisjointUnionInverse" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "40") + +(branch "dummy ID" +(rule "disjointDefinition" (formula "1") (term "0,1") (newnames "f_y,f_z,f_x")) +(rule "disjointDefinition" (formula "1") (term "1,1")) +(rule "disjointDefinition" (formula "1") (term "0")) +(rule "distributeIntersection_2" (formula "1") (term "0,0")) +(rule "unionEqualsEmpty" (formula "1") (term "0")) +(rule "commuteIntersection" (formula "1") (term "0,0,0")) +(rule "commuteIntersection" (formula "1") (term "0,1,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "closeTrue" (formula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_variousReferencedObjectIsCreated.proof b/key.core/tacletProofs/universe/Taclet_variousReferencedObjectIsCreated.proof new file mode 100644 index 0000000000..59fb0938ab --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_variousReferencedObjectIsCreated.proof @@ -0,0 +1,98 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:safe", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:treatAsAxiom", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 10000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_FREE", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_OFF", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_RESTRICTED", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "variousReferencedObjectIsCreated" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "69") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_o,f_f")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "referencedObjectIsCreatedRight" (formula "2") (ifseqformula "3")) +(rule "close" (formula "2") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_variousSelectOfEmptyAnon.proof b/key.core/tacletProofs/universe/Taclet_variousSelectOfEmptyAnon.proof new file mode 100644 index 0000000000..577f2805f0 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_variousSelectOfEmptyAnon.proof @@ -0,0 +1,107 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "variousSelectOfEmptyAnon" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "103") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_h,f_h2,f_o,f_f")) +(rule "notLeft" (formula "1")) +(rule "eqSymm" (formula "1")) +(rule "pullOutSelect" (formula "1") (term "2,0") (inst "selectSK=f_f_0")) +(rule "pullOutSelect" (formula "2") (term "1,0") (inst "selectSK=f_f_1")) +(rule "pullOutSelect" (formula "3") (term "0,0,0") (inst "selectSK=java_lang_Object_created__0")) +(rule "pullOutSelect" (formula "4") (term "1") (inst "selectSK=f_f_2")) +(rule "simplifySelectOfAnon" (formula "1")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "6"))) +(rule "applyEq" (formula "1") (term "1,0") (ifseqformula "4")) +(rule "applyEq" (formula "1") (term "0,0,0,0") (ifseqformula "2")) +(rule "applyEq" (formula "1") (term "2,0") (ifseqformula "3")) +(rule "ifthenelse_negated" (formula "1") (term "0")) +(rule "close" (formula "5") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_variousSelectOfEmptyAnonEQ.proof b/key.core/tacletProofs/universe/Taclet_variousSelectOfEmptyAnonEQ.proof new file mode 100644 index 0000000000..dac1a9c1e0 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_variousSelectOfEmptyAnonEQ.proof @@ -0,0 +1,102 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "variousSelectOfEmptyAnonEQ" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "37") + +(branch "dummy ID" +(rule "impRight" (formula "1") (newnames "f_EQ,f_o,f_f,f_h,f_h2")) +(rule "impRight" (formula "2")) +(rule "notLeft" (formula "2")) +(rule "eqSymm" (formula "2")) +(rule "pullOutSelect" (formula "2") (term "1") (inst "selectSK=f_f_0")) +(rule "simplifySelectOfAnonEQ" (formula "1") (ifseqformula "2")) + (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "4"))) +(rule "ifthenelse_negated" (formula "1") (term "0")) +(rule "close" (formula "3") (ifseqformula "1")) +) +} diff --git a/key.core/tacletProofs/universe/Taclet_variousSeqConcatAssociative.proof b/key.core/tacletProofs/universe/Taclet_variousSeqConcatAssociative.proof new file mode 100644 index 0000000000..2699601181 --- /dev/null +++ b/key.core/tacletProofs/universe/Taclet_variousSeqConcatAssociative.proof @@ -0,0 +1,226 @@ +\profile "Java Profile"; + +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:off", + "Strings" : "Strings:on", + "assertions" : "assertions:on", + "bigint" : "bigint:on", + "finalFields" : "finalFields:immutable", + "floatRules" : "floatRules:strictfpOnly", + "initialisation" : "initialisation:disableStaticInitialisation", + "intRules" : "intRules:arithmeticSemanticsIgnoringOF", + "integerSimplificationRules" : "integerSimplificationRules:full", + "javaLoopTreatment" : "javaLoopTreatment:efficient", + "mergeGenerateIsWeakeningGoal" : "mergeGenerateIsWeakeningGoal:off", + "methodExpansion" : "methodExpansion:modularOnly", + "modelFields" : "modelFields:showSatisfiability", + "moreSeqRules" : "moreSeqRules:off", + "permissions" : "permissions:off", + "programRules" : "programRules:Java", + "reach" : "reach:on", + "runtimeExceptions" : "runtimeExceptions:ban", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 20000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "INF_FLOW_CHECK_PROPERTY" : "INF_FLOW_CHECK_FALSE", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_ON", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } + +\proofObligation +// Proof-Obligation settings +{ + "class" : "de.uka.ilkd.key.taclettranslation.lemma.TacletProofObligationInput", + "name" : "variousSeqConcatAssociative" + } + +\proof { +(keyLog "0" (keyUser "boby" ) (keyVersion "19f98e9b750147137d3ed98179e16502b6f60abf")) + +(autoModeTime "264") + +(branch "dummy ID" +(rule "equalityToSeqGetAndSeqLenRight" (formula "1") (newnames "f_a,f_b,f_c") (inst "iv=iv")) +(rule "lenOfSeqConcat" (formula "1") (term "0,0")) +(rule "eqSymm" (formula "1") (term "0")) +(rule "lenOfSeqConcat" (formula "1") (term "1,1,0,0,1")) +(rule "lenOfSeqConcat" (formula "1") (term "0,1,0")) +(rule "lenOfSeqConcat" (formula "1") (term "0,0")) +(rule "polySimp_homoEq" (formula "1") (term "0")) +(rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) +(rule "polySimp_rightDist" (formula "1") (term "1,0,0")) +(rule "polySimp_mulComm0" (formula "1") (term "0,1,0,0")) +(rule "polySimp_addAssoc" (formula "1") (term "0,0")) +(rule "polySimp_addComm1" (formula "1") (term "0,0,0")) +(rule "polySimp_addComm1" (formula "1") (term "0,0,0,0")) +(rule "polySimp_pullOutFactor1" (formula "1") (term "0,0,0,0,0")) +(rule "add_literals" (formula "1") (term "1,0,0,0,0,0")) +(rule "times_zero_1" (formula "1") (term "0,0,0,0,0")) +(rule "add_zero_left" (formula "1") (term "0,0,0,0")) +(rule "lenOfSeqConcat" (formula "1") (term "0,1,1,0,0,1")) +(rule "lenOfSeqConcat" (formula "1") (term "0,1,0,0")) +(rule "polySimp_pullOutFactor1" (formula "1") (term "0,0")) +(rule "add_literals" (formula "1") (term "1,0,0")) +(rule "times_zero_1" (formula "1") (term "0,0")) + (builtin "One Step Simplification" (formula "1")) +(rule "allRight" (formula "1") (inst "sk=iv_0")) +(rule "impRight" (formula "1")) +(rule "andLeft" (formula "1")) +(rule "inEqSimp_ltToLeq" (formula "2")) +(rule "polySimp_rightDist" (formula "2") (term "1,0,0")) +(rule "polySimp_rightDist" (formula "2") (term "0,1,0,0")) +(rule "polySimp_mulComm0" (formula "2") (term "0,0,1,0,0")) +(rule "polySimp_addAssoc" (formula "2") (term "0,0")) +(rule "polySimp_addComm1" (formula "2") (term "0")) +(rule "polySimp_addAssoc" (formula "2") (term "0,0,0")) +(rule "polySimp_addComm1" (formula "2") (term "0,0")) +(rule "polySimp_addComm1" (formula "2") (term "0,0,0")) +(rule "inEqSimp_commuteLeq" (formula "1")) +(rule "inEqSimp_sepNegMonomial0" (formula "2")) +(rule "polySimp_mulLiterals" (formula "2") (term "0")) +(rule "polySimp_elimOne" (formula "2") (term "0")) +(rule "getOfSeqConcat" (formula "3") (term "0")) +(rule "polySimp_elimSub" (formula "3") (term "1,2,0")) +(rule "lenOfSeqConcat" (formula "3") (term "1,0,0")) +(rule "lenOfSeqConcat" (formula "3") (term "0,1,1,2,0")) +(rule "polySimp_mulComm0" (formula "3") (term "1,1,2,0")) +(rule "polySimp_rightDist" (formula "3") (term "1,1,2,0")) +(rule "polySimp_mulComm0" (formula "3") (term "0,1,1,2,0")) +(rule "polySimp_addAssoc" (formula "3") (term "1,2,0")) +(rule "inEqSimp_ltToLeq" (formula "3") (term "0,0")) +(rule "polySimp_rightDist" (formula "3") (term "1,0,0,0,0")) +(rule "polySimp_mulComm0" (formula "3") (term "0,1,0,0,0,0")) +(rule "polySimp_addAssoc" (formula "3") (term "0,0,0,0")) +(rule "polySimp_addComm1" (formula "3") (term "0,0,0")) +(rule "polySimp_addComm1" (formula "3") (term "0,0,0,0")) +(rule "inEqSimp_sepNegMonomial0" (formula "3") (term "0,0")) +(rule "polySimp_mulLiterals" (formula "3") (term "0,0,0")) +(rule "polySimp_elimOne" (formula "3") (term "0,0,0")) +(rule "getOfSeqConcat" (formula "3") (term "1")) +(rule "eqSymm" (formula "3")) +(rule "polySimp_elimSub" (formula "3") (term "1,2,0")) +(rule "inEqSimp_ltToLeq" (formula "3") (term "0,0")) +(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,0,0")) +(rule "polySimp_addComm1" (formula "3") (term "0,0,0")) +(rule "inEqSimp_sepNegMonomial0" (formula "3") (term "0,0")) +(rule "polySimp_mulLiterals" (formula "3") (term "0,0,0")) +(rule "eqSymm" (formula "3")) +(rule "polySimp_elimOne" (formula "3") (term "0,0,1")) +(rule "getOfSeqConcat" (formula "3") (term "2,1")) +(rule "eqSymm" (formula "3")) +(rule "polySimp_elimSub" (formula "3") (term "1,2,2,0")) +(rule "inEqSimp_ltToLeq" (formula "3") (term "0,2,0")) +(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,0,2,0")) +(rule "polySimp_addComm1" (formula "3") (term "0,0,2,0")) +(rule "polySimp_addAssoc" (formula "3") (term "0,0,0,2,0")) +(rule "inEqSimp_sepNegMonomial0" (formula "3") (term "0,2,0")) +(rule "polySimp_mulLiterals" (formula "3") (term "0,0,2,0")) +(rule "polySimp_elimOne" (formula "3") (term "0,0,2,0")) +(rule "eqSymm" (formula "3")) +(rule "getOfSeqConcat" (formula "3") (term "1,0")) +(rule "polySimp_elimSub" (formula "3") (term "1,2,1,0")) +(rule "inEqSimp_ltToLeq" (formula "3") (term "0,1,0")) +(rule "polySimp_mulComm0" (formula "3") (term "1,0,0,0,1,0")) +(rule "polySimp_addComm1" (formula "3") (term "0,0,1,0")) +(rule "inEqSimp_sepNegMonomial0" (formula "3") (term "0,1,0")) +(rule "polySimp_mulLiterals" (formula "3") (term "0,0,1,0")) +(rule "polySimp_elimOne" (formula "3") (term "0,0,1,0")) +(rule "ifthenelse_split" (formula "3") (term "2,1")) +(branch "f_b.length ≥ 1 + iv_0 + f_a.length * -1 TRUE" + (builtin "One Step Simplification" (formula "4") (ifInst "" (formula "1"))) + (rule "closeTrue" (formula "4")) +) +(branch "f_b.length ≥ 1 + iv_0 + f_a.length * -1 FALSE" + (rule "replace_known_right" (formula "4") (term "0,0") (ifseqformula "3")) + (builtin "One Step Simplification" (formula "4")) + (rule "eqSymm" (formula "4")) + (builtin "One Step Simplification" (formula "4")) + (rule "orRight" (formula "4")) + (rule "notRight" (formula "4")) + (rule "eqSymm" (formula "5")) + (rule "inEqSimp_geqRight" (formula "4")) + (rule "polySimp_rightDist" (formula "1") (term "1,0,0")) + (rule "polySimp_mulLiterals" (formula "1") (term "1,1,0,0")) + (rule "polySimp_elimOne" (formula "1") (term "1,1,0,0")) + (rule "polySimp_rightDist" (formula "1") (term "0,1,0,0")) + (rule "mul_literals" (formula "1") (term "0,0,1,0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0")) + (rule "polySimp_addAssoc" (formula "1") (term "0,0,0")) + (rule "add_literals" (formula "1") (term "0,0,0,0")) + (rule "add_zero_left" (formula "1") (term "0,0,0")) + (rule "inEqSimp_sepPosMonomial0" (formula "1")) + (rule "polySimp_mulComm0" (formula "1") (term "1")) + (rule "polySimp_rightDist" (formula "1") (term "1")) + (rule "polySimp_mulAssoc" (formula "1") (term "0,1")) + (rule "polySimp_mulComm0" (formula "1") (term "0,0,1")) + (rule "polySimp_mulLiterals" (formula "1") (term "0,1")) + (rule "polySimp_elimOne" (formula "1") (term "0,1")) + (rule "lenNonNegative" (formula "4") (term "0,1,1")) + (rule "inEqSimp_commuteLeq" (formula "4")) + (rule "inEqSimp_exactShadow3" (formula "4") (ifseqformula "1")) + (rule "mul_literals" (formula "4") (term "0,0")) + (rule "add_zero_left" (formula "4") (term "0")) + (rule "inEqSimp_sepNegMonomial1" (formula "4")) + (rule "polySimp_mulLiterals" (formula "4") (term "0")) + (rule "polySimp_elimOne" (formula "4") (term "0")) + (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "4")) + (rule "andLeft" (formula "2")) + (rule "inEqSimp_homoInEq1" (formula "2")) + (rule "polySimp_pullOutFactor1b" (formula "2") (term "0")) + (rule "add_literals" (formula "2") (term "1,1,0")) + (rule "times_zero_1" (formula "2") (term "1,0")) + (rule "add_zero_right" (formula "2") (term "0")) + (rule "leq_literals" (formula "2")) + (rule "closeFalse" (formula "2")) +) +) +} diff --git a/key.ui/build.gradle b/key.ui/build.gradle index ff9ae375a7..bfc5d72ded 100644 --- a/key.ui/build.gradle +++ b/key.ui/build.gradle @@ -69,6 +69,12 @@ application { mainClass.set("de.uka.ilkd.key.core.Main") } +java { + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} + run { systemProperties["key.examples.dir"] = "$projectDir/examples" //systemProperties["slf4j.detectLoggerNameMismatch"] = true @@ -80,7 +86,27 @@ run { // this can be used to solve a problem where the OS hangs during debugging of popup menus // (see https://docs.oracle.com/javase/10/troubleshoot/awt.htm#JSTGD425) - jvmArgs += "-Dsun.awt.disablegrab=true" + jvmArgs += [ + "-Dsun.awt.disablegrab=true ", + "--add-exports", + "jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED", + "--add-exports", + "jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED", + "--add-exports", + "jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED", + "--add-exports", + "jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED", + "--add-exports", + "jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED", + "--add-exports", + "jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED", + "--add-exports", + "jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED", + "--add-exports", + "jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED", + "--add-opens", + "jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED" + ] } tasks.register('runWithProfiler', JavaExec) { diff --git a/key.ui/report.html b/key.ui/report.html new file mode 100644 index 0000000000..2f15451431 --- /dev/null +++ b/key.ui/report.html @@ -0,0 +1,2016 @@ + + + NodeProofs.zproof - Proof Management Report + + + + + + + + + + + +
+ + + + +
+ +
+
    +
  • Bundle: NodeProofs.zproof
  • +
  • Checks run: settings, dependency, missing_proofs, replay
  • +
  • Date: 2025-09-19 13:48:44
  • +
  • Overall Status: OPEN
  • +
  • Contracts: +
    +
    proven
    +
    dependencies left
    +
    unproven
    +
    +
    +
    5
    +
    7
    +
    67
    +
    +
  • +
  • Standard output: +
    +
    + + + + + + + + +
    +
    +
    +Running missing proofs checker ... +[ Debug ] Loading Java sources ... +[ Debug ] Java sources successfully loaded! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(UniverseNode__isSimple()).JML accessible clause.0.proof +[ Debug ] ... loading done! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(UniverseNode__UniverseNode(java.lang.Object)).JML normal_behavior operation contract.0.proof +[ Debug ] ... loading done! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(java.lang.Object___inv_()).JML accessible clause.0.proof +[ Debug ] ... loading done! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(UniverseNode__add(java.lang.Object)).JML normal_behavior operation contract.0.proof +[ Debug ] ... loading done! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(UniverseNode__get(int)).JML accessible clause.0.proof +[ Debug ] ... loading done! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(UniverseNode__contains(java.lang.Object)).JML normal_behavior operation contract.0.proof +[ Debug ] ... loading done! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(UniverseNode__lemma()).JML model_behavior operation contract.0.proof +[ Debug ] ... loading done! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(UniverseNode__get(int)).JML normal_behavior operation contract.0.proof +[ Debug ] ... loading done! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(UniverseNode__pop()).JML normal_behavior operation contract.0.proof +[ Debug ] ... loading done! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(UniverseNode__set(int,java.lang.Object)).JML normal_behavior operation contract.0.proof +[ Debug ] ... loading done! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(UniverseNode__contains(java.lang.Object)).JML accessible clause.0.proof +[ Debug ] ... loading done! +[ Debug ] Loading proof from /tmp/KeY_PM_unzip3138729814689723921/UniverseNode(UniverseNode__isSimple()).JML normal_behavior operation contract.0.proof +[ Debug ] ... loading done! +[ Information ] Proof exists for contract UniverseNode[UniverseNode::isSimple()].JML accessible clause.0 +[ Information ] Proof exists for contract UniverseNode[UniverseNode::UniverseNode(java.lang.Object)].JML normal_behavior operation contract.0 +[ Information ] Proof exists for contract UniverseNode[java.lang.Object::<inv>()].JML accessible clause.0 +[ Information ] Proof exists for contract UniverseNode[UniverseNode::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Information ] Proof exists for contract UniverseNode[UniverseNode::get(int)].JML accessible clause.0 +[ Information ] Proof exists for contract UniverseNode[UniverseNode::contains(java.lang.Object)].JML normal_behavior operation contract.0 +[ Information ] Proof exists for contract UniverseNode[UniverseNode::lemma()].JML model_behavior operation contract.0 +[ Information ] Proof exists for contract UniverseNode[UniverseNode::get(int)].JML normal_behavior operation contract.0 +[ Information ] Proof exists for contract UniverseNode[UniverseNode::pop()].JML normal_behavior operation contract.0 +[ Information ] Proof exists for contract UniverseNode[UniverseNode::set(int,java.lang.Object)].JML normal_behavior operation contract.0 +[ Information ] Proof exists for contract UniverseNode[UniverseNode::contains(java.lang.Object)].JML accessible clause.0 +[ Information ] Proof exists for contract UniverseNode[UniverseNode::isSimple()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.InterruptedException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.InterruptedException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Iterable[java.lang.Iterable::iterator()].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[List::pop()].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::toUpperCase()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.LinkageError[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::hashCode()].JML behavior operation contract.0 +[ Warning ] No proof found for contract List[List::set(int,java.lang.Object)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayStoreException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayIndexOutOfBoundsException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOf([D,int)].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[List::set(int,java.lang.Object)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.Retention[java.lang.annotation.Retention::value()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::add(int,java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ExceptionInInitializerError[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::println(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IllegalArgumentException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ExceptionInInitializerError[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NumberFormatException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.ListIterator::hasNext()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::codePointCount(int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::indexOf(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::intern()].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[RecursiveList::RecursiveList()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NullPointerException[java.lang.NullPointerException::NullPointerException()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NoClassDefFoundError[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Object[java.lang.Object::Object()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::clear()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Exception[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::iterator()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.lang.Iterable::iterator()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::size()].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[UniverseList::UniverseList()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.OutOfMemoryError[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.ElementType[java.lang.annotation.ElementType::valueOf(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::valueOf(java.lang.String,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::set(int,java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::addAll(java.util.Collection)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.System[java.lang.System::arraycopy(java.lang.Object,int,java.lang.Object,int,int)].JML exceptional_behavior operation contract.1 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::lastIndexOf(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ClassCastException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.math.BigInteger[java.math.BigInteger::mod(java.math.BigInteger)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::equals(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.math.BigInteger[java.lang.Number::intValue()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.CloneNotSupportedException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::retainAll(java.util.Collection)].JML behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[KeYList::KeYList()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::valueOf(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArithmeticException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::sort([J,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::toArray([Ljava.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::reverseBytes(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOf([I,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Character[java.lang.Character::digit(char,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::charAt(int)].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::get(int)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.VirtualMachineError[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.VirtualMachineError[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::isEmpty()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf([C)].JML exceptional_behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::pop()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::toArray([Ljava.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.ArrayList::ArrayList()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOf([Z,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::min(long,long)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Throwable[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.math.BigInteger[java.math.BigInteger::compareTo(java.math.BigInteger)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.Comparable[java.lang.Comparable::compareTo(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NoClassDefFoundError[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::isEmpty()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ExceptionInInitializerError[java.lang.ExceptionInInitializerError::getException()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::subList(int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ExceptionInInitializerError[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[List::pop()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::bitCount(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::startsWith(java.lang.String,int)].JML exceptional_behavior operation contract.0 +[ Warning ] No proof found for contract List[List::get(int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::String(java.lang.String)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::println(long)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::indexOf(java.lang.Object)].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveNode[RecursiveNode::get(int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.ElementType[java.lang.Enum::name()].JML behavior operation contract.0 +[ Warning ] No proof found for contract List[List::size()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::getChars(int,int,[C,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.AssertionError[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::codePointAt(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::toLowerCase()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::toDegrees(double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.StringBuffer[java.lang.StringBuffer::charAt(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Error[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Iterator[java.util.Iterator::next()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::remove(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::print(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::sort([S,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::charAt(int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::println(boolean)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::copyValueOf([C)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::compareTo(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.ListIterator::previous()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.RuntimeException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.LinkedHashMap::LinkedHashMap()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.IOException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::clear()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.ListIterator::next()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.io.IOException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::addAll(java.util.Collection)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::contains(java.lang.String)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.Number[java.lang.Number::longValue()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayIndexOutOfBoundsException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::remove(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.ListIterator::hasNext()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::subList(int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Float[java.lang.Float::_isNaN(float)].JML model_behavior operation contract.0 +[ Warning ] No proof found for contract List[List::get(int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::get(int)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.StringBuffer[java.lang.StringBuffer::append(char)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NullPointerException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::toArray()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::put(java.lang.Object,java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::toHexString(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::matches(java.lang.String)].JML behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::pop()].JML exceptional_behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[List::get(int)].JML exceptional_behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[List::contains(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::print(char)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::equals([C,[C)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf(java.lang.Object)].JML normal_behavior operation contract.3 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOfRange([F,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NumberFormatException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Exception[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::size()].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.CloneNotSupportedException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.VirtualMachineError[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::replaceFirst(java.lang.String,java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::addAll(java.util.Collection)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf(char)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOfRange([S,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::removeAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::toArray([Ljava.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::listIterator(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::sort([J)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::sort([B,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::removeAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::println()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::containsKey(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayIndexOutOfBoundsException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArithmeticException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ClassCastException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Warning ] No proof found for contract List[List::contains(java.lang.Object)].JML accessible clause.0 +[ Warning ] No proof found for contract List[List::pop()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::startsWith(java.lang.String)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.RetentionPolicy[java.lang.Enum::name()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Double[java.lang.Double::_isNaN(double)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([Z,int,int,boolean)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::sqrt(double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IndexOutOfBoundsException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.Iterator::hasNext()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ExceptionInInitializerError[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::min(int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::equals([S,[S)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::lastIndexOf(java.lang.String,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.OutOfMemoryError[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.Iterator::next()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOfRange([D,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.OutOfMemoryError[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.math.BigInteger[java.math.BigInteger::valueOf(long)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.AssertionError[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::atan(double)].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[List::set(int,java.lang.Object)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Exception[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.InterruptedException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::size()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.StringBuffer[java.lang.StringBuffer::append(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::split(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::addAll(java.util.Collection)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::listIterator(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::lastIndexOf(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::max(int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NumberFormatException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[java.lang.Object::<inv>()].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::toCharArray()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.Character[java.lang.Comparable::compareTo(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::retainAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::set(int,java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::size()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::toUpperCase()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.NegativeArraySizeException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::String([C,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::containsValue(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::substring(int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::rotateRight(int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([B,int,int,byte)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::retainAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::containsAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.RetentionPolicy[java.lang.Enum::getDeclaringClass()].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveNode[RecursiveNode::contains(java.lang.Object)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.annotation.ElementType[java.lang.Enum::getDeclaringClass()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::println(char)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.ListIterator::hasPrevious()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::toArray([Ljava.lang.Object)].JML behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::get(int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.Iterator::remove()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::print(boolean)].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[List::get(int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::print(long)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayIndexOutOfBoundsException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Throwable[java.lang.Throwable::Throwable(java.lang.String,java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Number[java.lang.Number::intValue()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::hashCode()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ClassCastException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::replaceAll(java.lang.String,java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::equals(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ClassCastException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NoClassDefFoundError[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::lastIndexOf(int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.ListIterator::previousIndex()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.IOException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::equals([B,[B)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.LinkageError[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::isEmpty()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayStoreException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[List::get(int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::size()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::containsValue(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Exception[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::contains(java.lang.Object)].JML behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[List::contains(java.lang.Object)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::indexOf(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::listIterator()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Runnable[java.lang.Runnable::run()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::getBytes(int,int,[B,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.ListIterator::add(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([I,int,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.ListIterator::remove()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.lang.Iterable::iterator()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::atan2(double,double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.IOException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::toArray()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::asList([I)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::values()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.lang.Iterable::iterator()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::trim()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NumberFormatException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::longValue()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::containsAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::clear()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::toRadians(double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::copyValueOf([C,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::abs(float)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::substring(int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::print(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::isEmpty()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.ElementType[java.lang.Enum::ordinal()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Double[java.lang.Double::isNaN(double)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.lang.Iterable::iterator()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::split(java.lang.String,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::println(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IndexOutOfBoundsException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NegativeArraySizeException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::remove(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Enum[java.lang.Enum::name()].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveNode[RecursiveNode::contains(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Float[java.lang.Float::_isSame(float,float)].JML model_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Long[java.lang.Comparable::compareTo(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::String([C)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::asList([Ljava.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.ArrayList::ArrayList(java.util.Collection)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::size()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Throwable[java.lang.Throwable::Throwable(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::toArray([Ljava.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.RuntimeException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::lastIndexOf(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IllegalArgumentException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::add(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArithmeticException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::isEmpty()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::contains(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::addAll(java.util.Collection)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::print([C)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::removeAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf([C)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ExceptionInInitializerError[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::indexOf(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.math.BigInteger[java.lang.Comparable::compareTo(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.ListIterator::hasNext()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::iterator()].JML behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::set(int,java.lang.Object)].JML exceptional_behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveNode[RecursiveNode::set(int,java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::add(java.lang.Object)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.Iterator::remove()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::listIterator()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.Float[java.lang.Float::_isNaN(float)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::signum(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::pow(double,double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Error[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::max(float,float)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([J,int,int,long)].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[List::size()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.math.BigInteger[java.lang.Number::byteValue()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.RetentionPolicy[java.lang.Enum::ordinal()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::getInteger(java.lang.String,java.lang.Integer)].JML behavior operation contract.0 +[ Warning ] No proof found for contract List[List::pop()].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::abs(double)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.Annotation[java.lang.annotation.Annotation::hashCode()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::concat(java.lang.String)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOf([S,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::toString()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.RuntimeException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IllegalArgumentException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IllegalArgumentException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::get(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::println(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([J,long)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([F,int,int,float)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::listIterator()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.CloneNotSupportedException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ExceptionInInitializerError[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::getChars(int,int,[C,int)].JML exceptional_behavior operation contract.1 +[ Debug ] Ignoring internal contract java.lang.ClassCastException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOf([C,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::sort([I,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::print(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::isEmpty()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::remove(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.StringBuffer[java.lang.StringBuffer::append(boolean)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IndexOutOfBoundsException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::getBytes()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.Exception[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::toArray()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.ListIterator::add(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::highestOneBit(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf(java.lang.Object)].JML normal_behavior operation contract.2 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::contains(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::entrySet()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.math.BigInteger[java.lang.Number::longValue()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.math.BigInteger[java.lang.Number::shortValue()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::copyValueOf([C,int,int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::max(double,double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.ListIterator::remove()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::contains(java.lang.String)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.NullPointerException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.ListIterator::hasNext()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.Iterator[java.util.Iterator::remove()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::add(int,java.lang.Object)].Non-interference contract.0 +[ Warning ] No proof found for contract RecursiveList[List::size()].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.Float[java.lang.Float::_isSame(float,float)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.Throwable[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.ArrayList::ArrayList()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::contains(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::remove(java.lang.Object)].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[List::contains(java.lang.Object)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::hashCode()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::get(int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.System[java.lang.System::arraycopy(java.lang.Object,int,java.lang.Object,int,int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::clear()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::size()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::add(int,java.lang.Object)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::set(int,java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([B,byte)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::String([C)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NullPointerException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOfRange([Z,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::listIterator()].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[List::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::reverse(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayStoreException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::addAll(int,java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Date[java.util.Date::Date()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.ListIterator::next()].Non-interference contract.0 +[ Warning ] No proof found for contract RecursiveNode[RecursiveNode::pop()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.InterruptedException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.OutOfMemoryError[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::containsKey(java.lang.Object)].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[List::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Double[java.lang.Double::isNaN(double)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.NumberFormatException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::getInteger(java.lang.String,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::substring(int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NoClassDefFoundError[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::length()].JML normal_behavior operation contract.1 +[ Debug ] Ignoring internal contract java.lang.ArrayStoreException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::toString(int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::size()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayIndexOutOfBoundsException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::endsWith(java.lang.String)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::replace(char,char)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IndexOutOfBoundsException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::decode(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::add(int,java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::get(int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::listIterator(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::toLowerCase()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.RetentionPolicy[java.lang.Comparable::compareTo(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::add(java.lang.Object)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.NegativeArraySizeException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::iterator()].JML behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[List::get(int)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.ArrayIndexOutOfBoundsException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::abs(long)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::equals(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayIndexOutOfBoundsException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::set(int,java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NegativeArraySizeException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOf([F,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::retainAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::clear()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IllegalArgumentException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.ElementType[java.lang.Comparable::compareTo(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IndexOutOfBoundsException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.Iterator::hasNext()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Enum[java.lang.Enum::valueOf(java.lang.Class,java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf([C,int,int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::substring(int,int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::remove(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::isEmpty()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOf([B,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::compareToIgnoreCase(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NullPointerException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::indexOf(int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([D,double)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::removeAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::asin(double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Double[java.lang.Double::_isNaN(double)].JML model_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NegativeArraySizeException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Throwable[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::get(int)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::length()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.ElementType[java.lang.annotation.ElementType::name()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.ArrayList::ArrayList(java.util.Collection)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::startsWith(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::toString(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::exp(double)].JML behavior operation contract.0 +[ Warning ] No proof found for contract List[List::get(int)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::max(long,long)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::containsAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::sort([I)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::add(java.lang.Object)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.Comparable::compareTo(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.AssertionError[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOfRange([I,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.Annotation[java.lang.annotation.Annotation::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::clear()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.ListIterator::set(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::addAll(java.util.Collection)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::toOctalString(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::contains(java.lang.String)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::concat(java.lang.String)].JML normal_behavior operation contract.1 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::addAll(int,java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Iterator[java.util.Iterator::hasNext()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::indexOf(java.lang.String,int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.LinkedList::LinkedList(java.util.Collection)].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveNode[RecursiveNode::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::remove(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::lastIndexOf(java.lang.String)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.IOException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.ListIterator::hasPrevious()].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[List::set(int,java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::listIterator()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.ListIterator::nextIndex()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::keySet()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.StringBuffer[java.lang.StringBuffer::length()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::size()].Non-interference contract.0 +[ Warning ] No proof found for contract RecursiveNode[RecursiveNode::RecursiveNode(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.StringBuffer[java.lang.StringBuffer::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.InterruptedException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.RuntimeException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Double[java.lang.Double::_isSame(double,double)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::parseInt(java.lang.String,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.LinkedList::toString()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NoClassDefFoundError[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::remove(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::values()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::lastIndexOf(java.lang.String,int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IllegalArgumentException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.RetentionPolicy[java.lang.annotation.RetentionPolicy::valueOf(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::asList(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.System[java.lang.System::exit(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::parseInt(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::contains(java.lang.String)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.Throwable[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Enum[java.lang.Enum::ordinal()].JML behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[KeYList::newNode(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOfRange([J,int,int)].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[List::get(int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ClassCastException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::iterator()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Number[java.lang.Number::shortValue()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::keySet()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.AssertionError[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::isEmpty()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::add(java.lang.Object)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.LinkageError[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Exception[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ExceptionInInitializerError[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.RuntimeException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::contains(java.lang.Object)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::equals(java.lang.Object)].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[List::size()].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::size()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::codePointBefore(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Throwable[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.LinkageError[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.AssertionError[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.CloneNotSupportedException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.OutOfMemoryError[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::addAll(java.util.Collection)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::println([C)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::removeAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::getBytes()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Throwable[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::clear()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.ElementType[java.lang.annotation.ElementType::values()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.AssertionError[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Error[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::floorMod(int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.CloneNotSupportedException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract List[List::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IllegalArgumentException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::trim()].JML normal_behavior operation contract.1 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::get(int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Error[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::sin(double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::lastIndexOf(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.LinkageError[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::addAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::clear()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::isEmpty()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.InterruptedException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.AssertionError[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[List::get(int)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.Error[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::abs(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::toArray()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::intValue()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.ListIterator::nextIndex()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::min(double,double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ClassCastException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NoClassDefFoundError[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[List::contains(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::toArray()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Throwable[java.lang.Throwable::Throwable(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::String([C,int,int)].JML exceptional_behavior operation contract.1 +[ Warning ] No proof found for contract RecursiveNode[RecursiveNode::get(int)].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::size()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.StringBuffer[java.lang.StringBuffer::append(long)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::size()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::add(int,java.lang.Object)].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract List[List::set(int,java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NullPointerException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::add(java.lang.Object)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::equals([J,[J)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::containsAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::toArray()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::contains(java.lang.String)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.Annotation[java.lang.annotation.Annotation::annotationType()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.CloneNotSupportedException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Set::retainAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.Target[java.lang.annotation.Target::value()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.Iterator::next()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.ListIterator::next()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.math.BigInteger[java.math.BigInteger::mod(java.math.BigInteger)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.StringBuffer[java.lang.StringBuffer::append(java.lang.StringBuffer)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Error[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.ListIterator::next()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::size()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::regionMatches(int,java.lang.String,int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::removeAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::String()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArithmeticException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.System[java.lang.System::arraycopy(java.lang.Object,int,java.lang.Object,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::offsetByCodePoints(int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::indexOf(int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::isEmpty()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::iterator()].JML behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[java.lang.Object::<inv>()].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::sort([C)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NegativeArraySizeException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Throwable[java.lang.Throwable::Throwable()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::contains(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Number[java.lang.Number::byteValue()].JML behavior operation contract.0 +[ Warning ] No proof found for contract List[List::contains(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.IOException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::compareTo(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::sort([B)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Throwable[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::compareTo(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::endsWith(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::String(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ExceptionInInitializerError[java.lang.ExceptionInInitializerError::getCause()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::addAll(int,java.util.Collection)].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveNode[RecursiveNode::isSimple()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Comparable::compareTo(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.StringBuffer[java.lang.StringBuffer::append(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([I,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Enum[java.lang.Enum::getDeclaringClass()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::listIterator()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.CloneNotSupportedException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::retainAll(java.util.Collection)].JML behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[List::set(int,java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NullPointerException[java.lang.NullPointerException::NullPointerException(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf(java.lang.Object)].JML normal_behavior operation contract.4 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::byteValue()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::concat(java.lang.String)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::isEmpty()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::lastIndexOf(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NullPointerException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::equalsIgnoreCase(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::indexOf(java.lang.String,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::putAll(java.util.Map)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.RetentionPolicy[java.lang.annotation.RetentionPolicy::name()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.ListIterator::previousIndex()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::toBinaryString(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.math.BigInteger[java.math.BigInteger::compareTo(java.math.BigInteger)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::tan(double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArithmeticException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf([C,int,int)].JML exceptional_behavior operation contract.1 +[ Debug ] Ignoring internal contract java.io.PrintStream[java.io.PrintStream::printf(java.lang.String,[Ljava.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.List::add(int,java.lang.Object)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.Enum[java.lang.Comparable::compareTo(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([F,float)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::isEmpty()].Non-interference contract.0 +[ Warning ] No proof found for contract RecursiveNode[java.lang.Object::<inv>()].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf([C,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.List::get(int)].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::compareTo(java.lang.Integer)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::put(java.lang.Object,java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Exception[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IndexOutOfBoundsException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Warning ] No proof found for contract List[java.lang.Object::<inv>()].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.NoClassDefFoundError[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayStoreException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::getChars(int,int,[C,int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::toCharArray()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArithmeticException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([D,int,int,double)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::isEmpty()].Non-interference contract.0 +[ Debug ] Ignoring internal contract java.util.ListIterator[java.util.ListIterator::set(java.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::hashCode()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::lowestOneBit(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::containsAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.VirtualMachineError[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOfRange([C,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::equals([I,[I)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf(boolean)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::size()].Non-interference contract.0 +[ Warning ] No proof found for contract KeYList[List::pop()].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ListIteratorImpl[java.util.ListIterator::previous()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::getInteger(java.lang.String)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::acos(double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.List::subList(int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Map[java.util.Map::get(java.lang.Object)].JML behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::size()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf(java.lang.Object)].JML normal_behavior operation contract.1 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.util.Collection::addAll(java.util.Collection)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.OutOfMemoryError[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.VirtualMachineError[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::min(float,float)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.ArrayList[java.lang.Iterable::iterator()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NumberFormatException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::entrySet()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::sort([S)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::contains(java.lang.String)].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract List[List::size()].JML accessible clause.0 +[ Warning ] No proof found for contract KeYList[java.lang.Object::<inv>()].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::shortValue()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::copyValueOf([C)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.IndexOutOfBoundsException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::regionMatches(boolean,int,java.lang.String,int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::copyValueOf([C,int,int)].JML exceptional_behavior operation contract.1 +[ Debug ] Ignoring internal contract java.lang.Error[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::numberOfTrailingZeros(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::copyOf([J,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.OutOfMemoryError[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::format(java.lang.String,[Ljava.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.VirtualMachineError[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.RuntimeException[java.lang.Throwable::getLocalizedMessage()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.LinkageError[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NumberFormatException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::addAll(java.util.Collection)].JML normal_behavior operation contract.0 +[ Warning ] No proof found for contract KeYList[List::size()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NegativeArraySizeException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::contains(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::valueOf(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::isEmpty()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedHashMap[java.util.Map::putAll(java.util.Map)].JML behavior operation contract.0 +[ Warning ] No proof found for contract UniverseList[List::get(int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Double[java.lang.Double::_isSame(double,double)].JML model_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Math[java.lang.Math::cos(double)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayStoreException[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.io.IOException[java.lang.Throwable::getCause()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::numberOfLeadingZeros(int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Set[java.util.Collection::containsAll(java.util.Collection)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::fill([Z,boolean)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::startsWith(java.lang.String,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.NullPointerException[java.lang.Throwable::getMessage()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArrayStoreException[java.lang.Throwable::printStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::sort([C,int,int)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Integer[java.lang.Integer::rotateLeft(int,int)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.ArithmeticException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Arrays[java.util.Arrays::asList([C)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.Float[java.lang.Float::isNaN(float)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.InterruptedException[java.lang.Throwable::toString()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.LinkedList[java.util.Collection::toArray([Ljava.lang.Object)].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.RuntimeException[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.VirtualMachineError[java.lang.Throwable::initCause(java.lang.Throwable)].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.Collection[java.util.Collection::addAll(java.util.Collection)].Non-interference contract.0 +[ Warning ] No proof found for contract RecursiveNode[RecursiveNode::isSimple()].JML accessible clause.0 +[ Debug ] Ignoring internal contract java.lang.LinkageError[java.lang.Throwable::fillInStackTrace()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::String([C,int,int)].JML exceptional_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.util.List[java.util.Collection::iterator()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::valueOf(long)].JML behavior operation contract.0 +[ Warning ] No proof found for contract RecursiveList[List::pop()].JML normal_behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.annotation.RetentionPolicy[java.lang.annotation.RetentionPolicy::values()].JML behavior operation contract.0 +[ Debug ] Ignoring internal contract java.lang.String[java.lang.String::compareTo(java.lang.String)].JML exceptional_behavior operation contract.0 +Running settings checker ... +[ Debug ] Reference settings (id 0) are: {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Debug ] These settings already exist (with id 0): {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Debug ] These settings already exist (with id 0): {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Debug ] These settings already exist (with id 0): {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Debug ] These settings already exist (with id 0): {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Debug ] These settings already exist (with id 0): {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Debug ] These settings already exist (with id 0): {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Debug ] These settings already exist (with id 0): {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Debug ] These settings already exist (with id 0): {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Debug ] These settings already exist (with id 0): {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Debug ] These settings already exist (with id 0): {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Debug ] These settings already exist (with id 0): {initialisation=initialisation:disableStaticInitialisation, wdChecks=wdChecks:off, reach=reach:on, moreSeqRules=moreSeqRules:off, finalFields=finalFields:immutable, sequences=sequences:on, Strings=Strings:on, methodExpansion=methodExpansion:modularOnly, mergeGenerateIsWeakeningGoal=mergeGenerateIsWeakeningGoal:off, runtimeExceptions=runtimeExceptions:ban, wdOperator=wdOperator:L, JavaCard=JavaCard:off, integerSimplificationRules=integerSimplificationRules:full, floatRules=floatRules:strictfpOnly, permissions=permissions:off, modelFields=modelFields:showSatisfiability, javaLoopTreatment=javaLoopTreatment:efficient, assertions=assertions:on, bigint=bigint:on, intRules=intRules:arithmeticSemanticsIgnoringOF, programRules=programRules:Java, soundDefaultContracts=soundDefaultContracts:on} +[ Information ] All settings are consistent! +[ Information ] Settings check completed! +Running replay checker ... +[ Information ] Starting replay of proof UniverseNode[UniverseNode::isSimple()].JML accessible clause.0 +[ Information ] ... successful (proof is closed)! +[ Information ] Starting replay of proof UniverseNode[UniverseNode::UniverseNode(java.lang.Object)].JML normal_behavior operation contract.0 +[ Information ] ... successful (proof is closed)! +[ Information ] Starting replay of proof UniverseNode[java.lang.Object::<inv>()].JML accessible clause.0 +[ Information ] ... successful (proof is closed)! +[ Information ] Starting replay of proof UniverseNode[UniverseNode::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Information ] ... successful (proof is closed)! +[ Information ] Starting replay of proof UniverseNode[UniverseNode::get(int)].JML accessible clause.0 +[ Information ] ... successful (proof is closed)! +[ Information ] Starting replay of proof UniverseNode[UniverseNode::contains(java.lang.Object)].JML normal_behavior operation contract.0 +[ Information ] ... successful (proof is closed)! +[ Information ] Starting replay of proof UniverseNode[UniverseNode::lemma()].JML model_behavior operation contract.0 +[ Information ] ... successful (proof is closed)! +[ Information ] Starting replay of proof UniverseNode[UniverseNode::get(int)].JML normal_behavior operation contract.0 +[ Information ] ... successful (proof is closed)! +[ Information ] Starting replay of proof UniverseNode[UniverseNode::pop()].JML normal_behavior operation contract.0 +[ Information ] ... successful (proof is closed)! +[ Information ] Starting replay of proof UniverseNode[UniverseNode::set(int,java.lang.Object)].JML normal_behavior operation contract.0 +[ Information ] ... successful (proof is closed)! +[ Information ] Starting replay of proof UniverseNode[UniverseNode::contains(java.lang.Object)].JML accessible clause.0 +[ Information ] ... successful (proof is closed)! +[ Information ] Starting replay of proof UniverseNode[UniverseNode::isSimple()].JML normal_behavior operation contract.0 +[ Information ] ... successful (proof is closed)! +Running dependency checker ... +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Warning ] No saved modality information was found! Assuming "diamond" (incomplete for box contracts)! +[ Information ] No illegal dependencies found. +[ Debug ] Searching for unproven dependencies ... +[ Information ] Proof is closed and has no unproven dependencies: UniverseNode[UniverseNode::isSimple()].JML normal_behavior operation contract.0 +[ Information ] Proof is closed and has no unproven dependencies: UniverseNode[UniverseNode::UniverseNode(java.lang.Object)].JML normal_behavior operation contract.0 +[ Information ] Proof is closed and has no unproven dependencies: UniverseNode[UniverseNode::isSimple()].JML accessible clause.0 +[ Information ] Proof is closed and has no unproven dependencies: UniverseNode[java.lang.Object::<inv>()].JML accessible clause.0 +[ Information ] Proof is closed and has no unproven dependencies: UniverseNode[UniverseNode::lemma()].JML model_behavior operation contract.0 +[ Warning ] Unproven dependencies found for proof UniverseNode[UniverseNode::add(java.lang.Object)].JML normal_behavior operation contract.0 +[ Warning ] Unproven dependencies found for proof UniverseNode[UniverseNode::get(int)].JML accessible clause.0 +[ Warning ] Unproven dependencies found for proof UniverseNode[UniverseNode::contains(java.lang.Object)].JML normal_behavior operation contract.0 +[ Warning ] Unproven dependencies found for proof UniverseNode[UniverseNode::get(int)].JML normal_behavior operation contract.0 +[ Warning ] Unproven dependencies found for proof UniverseNode[UniverseNode::pop()].JML normal_behavior operation contract.0 +[ Warning ] Unproven dependencies found for proof UniverseNode[UniverseNode::set(int,java.lang.Object)].JML normal_behavior operation contract.0 +[ Warning ] Unproven dependencies found for proof UniverseNode[UniverseNode::contains(java.lang.Object)].JML accessible clause.0 +[ Information ] Unproven dependencies found in bundle! +[ Information ] Dependency checks completed! +All checks done! +Global result: OPEN +All checks completed! +Generating html report ... +
    +
  • +
+ +
+ +
+

Files found inside proof bundle:

+
    +
  • + KeY_PM_unzip3138729814689723921 +
      +
        +
      • + src +
          +
            +
          • + qual +
              +
                +
              • + Any.java +
              • +
                +
              • + Bottom.java +
              • +
                +
              • + Payload.java +
              • +
                +
              • + Peer.java +
              • +
                +
              • + Rep.java +
              • +
                +
              • + RepOnly.java +
              • +
                +
              • + Self.java +
              • +
              +
            +
          • +
            +
          • + KeYList.java +
          • +
            +
          • + KeYNode.java +
          • +
            +
          • + List.java +
          • +
            +
          • + RecursiveList.java +
          • +
            +
          • + RecursiveNode.java +
          • +
            +
          • + UniverseList.java +
          • +
            +
          • + UniverseNode.java +
          • +
          +
        +
      • +
        +
      • + UniverseNode(UniverseNode__UniverseNode(java.lang.Object)).JML normal_behavior operation contract.0.proof +
      • +
        +
      • + UniverseNode(UniverseNode__add(java.lang.Object)).JML normal_behavior operation contract.0.proof +
      • +
        +
      • + UniverseNode(UniverseNode__contains(java.lang.Object)).JML accessible clause.0.proof +
      • +
        +
      • + UniverseNode(UniverseNode__contains(java.lang.Object)).JML normal_behavior operation contract.0.proof +
      • +
        +
      • + UniverseNode(UniverseNode__get(int)).JML accessible clause.0.proof +
      • +
        +
      • + UniverseNode(UniverseNode__get(int)).JML normal_behavior operation contract.0.proof +
      • +
        +
      • + UniverseNode(UniverseNode__isSimple()).JML accessible clause.0.proof +
      • +
        +
      • + UniverseNode(UniverseNode__isSimple()).JML normal_behavior operation contract.0.proof +
      • +
        +
      • + UniverseNode(UniverseNode__lemma()).JML model_behavior operation contract.0.proof +
      • +
        +
      • + UniverseNode(UniverseNode__pop()).JML normal_behavior operation contract.0.proof +
      • +
        +
      • + UniverseNode(UniverseNode__set(int,java.lang.Object)).JML normal_behavior operation contract.0.proof +
      • +
        +
      • + UniverseNode(java.lang.Object___inv_()).JML accessible clause.0.proof +
      • +
      +
    +
  • +
+
+ +
+

Contracts with proof inside bundle:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ContractSource FileProof
FileSettings IDStatusStatistics
loadedreplayedstatedependencies
+ class: UniverseNode
+ target: UniverseNode::isSimple
+ type: JML accessible clause 0 + +
UniverseNode.java
UniverseNode(UniverseNode__isSimple()).JML accessible clause.0.proof
#00closed + Nodes: 105
+ Interactive Steps: 0
+ Automode Time: 70 ms +
+ class: UniverseNode
+ target: UniverseNode::UniverseNode
+ type: JML normal_behavior operation contract 0 + +
UniverseNode.java
UniverseNode(UniverseNode__UniverseNode(java.lang.Object)).JML normal_behavior operation contract.0.proof
#00closed + Nodes: 824
+ Interactive Steps: 0
+ Automode Time: 1079 ms +
+ class: UniverseNode
+ target: java.lang.Object::<inv>
+ type: JML accessible clause 0 for java.lang.Object + +
Object.java
UniverseNode(java.lang.Object___inv_()).JML accessible clause.0.proof
#00closed + Nodes: 337
+ Interactive Steps: 1
+ Automode Time: 509 ms +
+ class: UniverseNode
+ target: UniverseNode::add
+ type: JML normal_behavior operation contract 0 + +
UniverseNode.java
UniverseNode(UniverseNode__add(java.lang.Object)).JML normal_behavior operation contract.0.proof
#00closedopen dep. + Nodes: 7819
+ Interactive Steps: 13
+ Automode Time: 36362 ms +
+ class: UniverseNode
+ target: UniverseNode::get
+ type: JML accessible clause 0 + +
UniverseNode.java
UniverseNode(UniverseNode__get(int)).JML accessible clause.0.proof
#00closedopen dep. + Nodes: 9743
+ Interactive Steps: 2
+ Automode Time: 10327 ms +
+ class: UniverseNode
+ target: UniverseNode::contains
+ type: JML normal_behavior operation contract 0 + +
UniverseNode.java
UniverseNode(UniverseNode__contains(java.lang.Object)).JML normal_behavior operation contract.0.proof
#00closedopen dep. + Nodes: 3444
+ Interactive Steps: 15
+ Automode Time: 13691 ms +
+ class: UniverseNode
+ target: UniverseNode::lemma
+ type: JML model_behavior operation contract 0 + +
UniverseNode.java
UniverseNode(UniverseNode__lemma()).JML model_behavior operation contract.0.proof
#00closed + Nodes: 5
+ Interactive Steps: 0
+ Automode Time: 9 ms +
+ class: UniverseNode
+ target: UniverseNode::get
+ type: JML normal_behavior operation contract 0 + +
UniverseNode.java
UniverseNode(UniverseNode__get(int)).JML normal_behavior operation contract.0.proof
#00closedopen dep. + Nodes: 713
+ Interactive Steps: 0
+ Automode Time: 664 ms +
+ class: UniverseNode
+ target: UniverseNode::pop
+ type: JML normal_behavior operation contract 0 + +
UniverseNode.java
UniverseNode(UniverseNode__pop()).JML normal_behavior operation contract.0.proof
#00closedopen dep. + Nodes: 31918
+ Interactive Steps: 85
+ Automode Time: 93897 ms +
+ class: UniverseNode
+ target: UniverseNode::set
+ type: JML normal_behavior operation contract 0 + +
UniverseNode.java
UniverseNode(UniverseNode__set(int,java.lang.Object)).JML normal_behavior operation contract.0.proof
#00closedopen dep. + Nodes: 6636
+ Interactive Steps: 85
+ Automode Time: 62314 ms +
+ class: UniverseNode
+ target: UniverseNode::contains
+ type: JML accessible clause 0 + +
UniverseNode.java
UniverseNode(UniverseNode__contains(java.lang.Object)).JML accessible clause.0.proof
#00closedopen dep. + Nodes: 4221
+ Interactive Steps: 6
+ Automode Time: 3803 ms +
+ class: UniverseNode
+ target: UniverseNode::isSimple
+ type: JML normal_behavior operation contract 0 + +
UniverseNode.java
UniverseNode(UniverseNode__isSimple()).JML normal_behavior operation contract.0.proof
#00closed + Nodes: 61
+ Interactive Steps: 0
+ Automode Time: 53 ms +
+ +

Contracts declared inside bundle without proof:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Contract
class: List
+ target: java.lang.Object::<inv>
+ type: JML accessible clause 0 for java.lang.Object +
class: RecursiveList
+ target: RecursiveList::pop
+ type: JML exceptional_behavior operation contract 0 for List +
class: RecursiveList
+ target: RecursiveList::get
+ type: JML accessible clause 0 for List +
class: List
+ target: List::set
+ type: JML exceptional_behavior operation contract 0 +
class: KeYList
+ target: KeYList::set
+ type: JML exceptional_behavior operation contract 0 for List +
class: RecursiveList
+ target: RecursiveList::contains
+ type: JML normal_behavior operation contract 0 for List +
class: KeYList
+ target: KeYList::pop
+ type: JML exceptional_behavior operation contract 0 for List +
class: RecursiveNode
+ target: RecursiveNode::get
+ type: JML accessible clause 0 +
class: UniverseList
+ target: UniverseList::set
+ type: JML exceptional_behavior operation contract 0 for List +
class: RecursiveNode
+ target: RecursiveNode::set
+ type: JML normal_behavior operation contract 0 +
class: KeYList
+ target: KeYList::add
+ type: JML normal_behavior operation contract 0 for List +
class: RecursiveNode
+ target: RecursiveNode::contains
+ type: JML accessible clause 0 +
class: RecursiveList
+ target: RecursiveList::RecursiveList
+ type: JML normal_behavior operation contract 0 +
class: RecursiveNode
+ target: RecursiveNode::add
+ type: JML normal_behavior operation contract 0 +
class: RecursiveNode
+ target: RecursiveNode::pop
+ type: JML normal_behavior operation contract 0 +
class: List
+ target: List::set
+ type: JML normal_behavior operation contract 0 +
class: RecursiveList
+ target: RecursiveList::add
+ type: JML normal_behavior operation contract 0 for List +
class: UniverseList
+ target: UniverseList::get
+ type: JML exceptional_behavior operation contract 0 for List +
class: UniverseList
+ target: UniverseList::UniverseList
+ type: JML normal_behavior operation contract 0 +
class: UniverseList
+ target: UniverseList::add
+ type: JML normal_behavior operation contract 0 for List +
class: RecursiveList
+ target: RecursiveList::set
+ type: JML normal_behavior operation contract 0 for List +
class: UniverseList
+ target: UniverseList::size
+ type: JML normal_behavior operation contract 0 for List +
class: RecursiveList
+ target: RecursiveList::get
+ type: JML normal_behavior operation contract 0 for List +
class: RecursiveList
+ target: RecursiveList::size
+ type: JML normal_behavior operation contract 0 for List +
class: List
+ target: List::pop
+ type: JML exceptional_behavior operation contract 0 +
class: RecursiveNode
+ target: RecursiveNode::RecursiveNode
+ type: JML normal_behavior operation contract 0 +
class: List
+ target: List::get
+ type: JML exceptional_behavior operation contract 0 +
class: KeYList
+ target: KeYList::KeYList
+ type: JML normal_behavior operation contract 0 +
class: UniverseList
+ target: UniverseList::pop
+ type: JML exceptional_behavior operation contract 0 for List +
class: List
+ target: List::size
+ type: JML accessible clause 0 +
class: RecursiveList
+ target: RecursiveList::get
+ type: JML exceptional_behavior operation contract 0 for List +
class: KeYList
+ target: java.lang.Object::<inv>
+ type: JML accessible clause 0 for java.lang.Object +
class: KeYList
+ target: KeYList::contains
+ type: JML normal_behavior operation contract 0 for List +
class: KeYList
+ target: KeYList::get
+ type: JML exceptional_behavior operation contract 0 for List +
class: UniverseList
+ target: UniverseList::size
+ type: JML accessible clause 0 for List +
class: KeYList
+ target: KeYList::get
+ type: JML accessible clause 0 for List +
class: UniverseList
+ target: java.lang.Object::<inv>
+ type: JML accessible clause 0 for java.lang.Object +
class: KeYList
+ target: KeYList::contains
+ type: JML accessible clause 0 for List +
class: UniverseList
+ target: UniverseList::get
+ type: JML accessible clause 0 for List +
class: List
+ target: List::contains
+ type: JML normal_behavior operation contract 0 +
class: KeYList
+ target: KeYList::newNode
+ type: JML normal_behavior operation contract 0 +
class: KeYList
+ target: KeYList::size
+ type: JML normal_behavior operation contract 0 for List +
class: KeYList
+ target: KeYList::get
+ type: JML normal_behavior operation contract 0 for List +
class: UniverseList
+ target: UniverseList::set
+ type: JML normal_behavior operation contract 0 for List +
class: UniverseList
+ target: UniverseList::contains
+ type: JML normal_behavior operation contract 0 for List +
class: UniverseList
+ target: UniverseList::get
+ type: JML normal_behavior operation contract 0 for List +
class: RecursiveNode
+ target: RecursiveNode::isSimple
+ type: JML normal_behavior operation contract 0 +
class: List
+ target: List::contains
+ type: JML accessible clause 0 +
class: UniverseList
+ target: UniverseList::pop
+ type: JML normal_behavior operation contract 0 for List +
class: List
+ target: List::pop
+ type: JML normal_behavior operation contract 0 +
class: KeYList
+ target: KeYList::set
+ type: JML normal_behavior operation contract 0 for List +
class: UniverseList
+ target: UniverseList::contains
+ type: JML accessible clause 0 for List +
class: KeYList
+ target: KeYList::size
+ type: JML accessible clause 0 for List +
class: RecursiveList
+ target: RecursiveList::set
+ type: JML exceptional_behavior operation contract 0 for List +
class: KeYList
+ target: KeYList::pop
+ type: JML normal_behavior operation contract 0 for List +
class: RecursiveNode
+ target: RecursiveNode::isSimple
+ type: JML accessible clause 0 +
class: List
+ target: List::get
+ type: JML normal_behavior operation contract 0 +
class: RecursiveList
+ target: RecursiveList::size
+ type: JML accessible clause 0 for List +
class: List
+ target: List::add
+ type: JML normal_behavior operation contract 0 +
class: RecursiveNode
+ target: RecursiveNode::get
+ type: JML normal_behavior operation contract 0 +
class: RecursiveList
+ target: java.lang.Object::<inv>
+ type: JML accessible clause 0 for java.lang.Object +
class: List
+ target: List::get
+ type: JML accessible clause 0 +
class: RecursiveNode
+ target: java.lang.Object::<inv>
+ type: JML accessible clause 0 for java.lang.Object +
class: RecursiveList
+ target: RecursiveList::pop
+ type: JML normal_behavior operation contract 0 for List +
class: List
+ target: List::size
+ type: JML normal_behavior operation contract 0 +
class: RecursiveNode
+ target: RecursiveNode::contains
+ type: JML normal_behavior operation contract 0 +
class: RecursiveList
+ target: RecursiveList::contains
+ type: JML accessible clause 0 for List +
+

Settings comparison:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
IDJavaCardStringsassertionsbigintfinalFieldsfloatRulesinitialisationintRulesintegerSimplificationRulesjavaLoopTreatmentmergeGenerateIsWeakeningGoalmethodExpansionmodelFieldsmoreSeqRulespermissionsprogramRulesreachruntimeExceptionssequencessoundDefaultContractswdCheckswdOperator
#00offonononimmutablestrictfpOnlydisableStaticInitialisationarithmeticSemanticsIgnoringOFfullefficientoffmodularOnlyshowSatisfiabilityoffoffJavaonbanononoffL
+ +
+ +
+

Dependencies between contracts:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ProofSCCDependencies
UniverseNode[UniverseNode::contains(java.lang.Object)].JML accessible clause.0#02 (legal)UniverseNode[UniverseNode::contains(java.lang.Object)].JML normal_behavior operation contract.0
UniverseNode[java.lang.Object::<inv>()].JML accessible clause.0
UniverseNode[UniverseNode::get(int)].JML accessible clause.0#04 (legal)UniverseNode[UniverseNode::get(int)].JML normal_behavior operation contract.0
UniverseNode[java.lang.Object::<inv>()].JML accessible clause.0
UniverseNode[UniverseNode::contains(java.lang.Object)].JML normal_behavior operation contract.0#00 (legal)UniverseNode[UniverseNode::contains(java.lang.Object)].JML normal_behavior operation contract.0
UniverseNode[UniverseNode::isSimple()].JML normal_behavior operation contract.0#05 (legal)
UniverseNode[UniverseNode::pop()].JML normal_behavior operation contract.0#06 (legal)UniverseNode[UniverseNode::isSimple()].JML normal_behavior operation contract.0
UniverseNode[UniverseNode::pop()].JML normal_behavior operation contract.0
UniverseNode[java.lang.Object::<inv>()].JML accessible clause.0
UniverseNode[UniverseNode::set(int,java.lang.Object)].JML normal_behavior operation contract.0#07 (legal)UniverseNode[UniverseNode::set(int,java.lang.Object)].JML normal_behavior operation contract.0
UniverseNode[java.lang.Object::<inv>()].JML accessible clause.0
UniverseNode[UniverseNode::add(java.lang.Object)].JML normal_behavior operation contract.0#09 (legal)UniverseNode[UniverseNode::add(java.lang.Object)].JML normal_behavior operation contract.0
UniverseNode[UniverseNode::UniverseNode(java.lang.Object)].JML normal_behavior operation contract.0
UniverseNode[java.lang.Object::<inv>()].JML accessible clause.0
UniverseNode[UniverseNode::get(int)].JML normal_behavior operation contract.0#03 (legal)UniverseNode[UniverseNode::get(int)].JML normal_behavior operation contract.0
UniverseNode[UniverseNode::UniverseNode(java.lang.Object)].JML normal_behavior operation contract.0#08 (legal)
UniverseNode[UniverseNode::isSimple()].JML accessible clause.0#10 (legal)
UniverseNode[java.lang.Object::<inv>()].JML accessible clause.0#01 (legal)
UniverseNode[UniverseNode::lemma()].JML model_behavior operation contract.0#11 (legal)
+ + + + +
+ + + + diff --git a/key.ui/src/main/java/de/uka/ilkd/key/gui/plugins/javac/JavaCompilerCheckFacade.java b/key.ui/src/main/java/de/uka/ilkd/key/gui/plugins/javac/JavaCompilerCheckFacade.java index a2cc0f8144..e1235539ec 100644 --- a/key.ui/src/main/java/de/uka/ilkd/key/gui/plugins/javac/JavaCompilerCheckFacade.java +++ b/key.ui/src/main/java/de/uka/ilkd/key/gui/plugins/javac/JavaCompilerCheckFacade.java @@ -86,6 +86,7 @@ public class JavaCompilerCheckFacade { // gather configured bootstrap classpath and regular classpath List options = new ArrayList<>(); + if (bootClassPath != null) { options.add("-Xbootclasspath"); options.add(bootClassPath.toAbsolutePath().toString()); @@ -97,6 +98,7 @@ public class JavaCompilerCheckFacade { .map(Objects::toString) .collect(Collectors.joining(":"))); } + ArrayList files = new ArrayList<>(); if (Files.isDirectory(javaPath)) { try (var s = Files.walk(javaPath)) { diff --git a/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/check/dependency/NodeIntermediateWalker.java b/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/check/dependency/NodeIntermediateWalker.java index 9afa8bbd5c..f08678b6f1 100644 --- a/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/check/dependency/NodeIntermediateWalker.java +++ b/keyext.proofmanagement/src/main/java/org/key_project/proofmanagement/check/dependency/NodeIntermediateWalker.java @@ -3,6 +3,9 @@ * SPDX-License-Identifier: GPL-2.0-only */ package org.key_project.proofmanagement.check.dependency; +import java.util.Deque; +import java.util.LinkedList; + import de.uka.ilkd.key.proof.io.intermediate.NodeIntermediate; /** @@ -13,7 +16,7 @@ */ public abstract class NodeIntermediateWalker { /** the root where the walker starts */ - private NodeIntermediate root; + private final NodeIntermediate root; /** * create a walker starting from the given root @@ -26,19 +29,38 @@ protected NodeIntermediateWalker(NodeIntermediate root) { /** starts the walker */ public void start() { - walk(root); + walkIteratively(); } /** - * walks the tree while performing specified action + * Walks the tree while performing specified action. + * + * @deprecated Might run into stack overflow for medium to long proofs, use + * {@link #walkIteratively()} instead. * * @param node the current position of the walker in tree */ - protected void walk(NodeIntermediate node) { + @Deprecated() + protected void walkRecursively(NodeIntermediate node) { doAction(node); for (NodeIntermediate child : node.getChildren()) { - walk(child); + walkRecursively(child); + } + } + + /** + * Walks the tree while performing specified action. This iterative variant avoids stack + * overflows and is thus preferred. It performs a breadth-first search traversal. + */ + protected void walkIteratively() { + Deque queue = new LinkedList<>(); + queue.add(root); + + while (!queue.isEmpty()) { + NodeIntermediate node = queue.pollFirst(); + doAction(node); + queue.addAll(node.getChildren()); } } diff --git a/recoder/src/main/java/recoder/java/StatementBlock.java b/recoder/src/main/java/recoder/java/StatementBlock.java index 35cf61f564..9877de868e 100644 --- a/recoder/src/main/java/recoder/java/StatementBlock.java +++ b/recoder/src/main/java/recoder/java/StatementBlock.java @@ -350,4 +350,17 @@ public void removeVariableFromScope(String name) { public void accept(SourceVisitor v) { v.visitStatementBlock(this); } + + @Override + public String toString() { + var out = "{" + System.lineSeparator(); + + for (var statement : body) { + out += " " + statement.toString() + System.lineSeparator(); + } + + out += "}" + System.lineSeparator(); + + return out; + } } diff --git a/recoder/src/main/java/recoder/java/declaration/AnnotationUseSpecification.java b/recoder/src/main/java/recoder/java/declaration/AnnotationUseSpecification.java index baef2de3f2..8133c90e8b 100644 --- a/recoder/src/main/java/recoder/java/declaration/AnnotationUseSpecification.java +++ b/recoder/src/main/java/recoder/java/declaration/AnnotationUseSpecification.java @@ -6,6 +6,7 @@ import recoder.abstraction.AnnotationUse; import recoder.java.*; +import recoder.java.expression.operator.TypeOperator; import recoder.java.reference.TypeReference; import recoder.java.reference.TypeReferenceContainer; import recoder.list.generic.ASTList; @@ -18,7 +19,6 @@ */ public class AnnotationUseSpecification extends JavaNonTerminalProgramElement implements AnnotationUse, DeclarationSpecifier, TypeReferenceContainer, Expression { - /** * serialization id */ @@ -50,8 +50,9 @@ public AnnotationUseSpecification(TypeReference reference) { */ public AnnotationUseSpecification(AnnotationUseSpecification proto) { super(proto); - this.reference = (TypeReference) proto.parent.deepClone(); - this.elementValuePairs = proto.elementValuePairs.deepClone(); + this.reference = proto.reference; + this.elementValuePairs = + proto.elementValuePairs == null ? null : proto.elementValuePairs.deepClone(); makeParentRoleValid(); } @@ -211,6 +212,10 @@ public void setParent(PackageSpecification parent) { this.parent = parent; } + public void setParent(TypeOperator parent) { + this.parent = parent; + } + public TypeReference getTypeReference() { return reference; } @@ -266,4 +271,8 @@ public void setExpressionContainer(ExpressionContainer c) { parent = c; } + @Override + public String toString() { + return "@" + reference.getName(); + } } diff --git a/recoder/src/main/java/recoder/java/declaration/LocalVariableDeclaration.java b/recoder/src/main/java/recoder/java/declaration/LocalVariableDeclaration.java index d1e4588b36..be5312cde2 100644 --- a/recoder/src/main/java/recoder/java/declaration/LocalVariableDeclaration.java +++ b/recoder/src/main/java/recoder/java/declaration/LocalVariableDeclaration.java @@ -343,4 +343,14 @@ public boolean isTransient() { public void accept(SourceVisitor v) { v.visitLocalVariableDeclaration(this); } + + @Override + public String toString() { + var declspecs = getDeclarationSpecifiers(); + + return declspecs == null ? "" + : declspecs.toString() + + " " + getTypeReference().toString() + + " " + varSpecs.toString() + ";"; + } } diff --git a/recoder/src/main/java/recoder/java/declaration/VariableSpecification.java b/recoder/src/main/java/recoder/java/declaration/VariableSpecification.java index 6c530533f1..efdd95416f 100644 --- a/recoder/src/main/java/recoder/java/declaration/VariableSpecification.java +++ b/recoder/src/main/java/recoder/java/declaration/VariableSpecification.java @@ -438,4 +438,9 @@ public SourceElement getLastElement() { public void accept(SourceVisitor v) { v.visitVariableSpecification(this); } + + @Override + public String toString() { + return getFullName(); + } } diff --git a/recoder/src/main/java/recoder/java/expression/operator/TypeOperator.java b/recoder/src/main/java/recoder/java/expression/operator/TypeOperator.java index e887a63b5a..a4575f5954 100644 --- a/recoder/src/main/java/recoder/java/expression/operator/TypeOperator.java +++ b/recoder/src/main/java/recoder/java/expression/operator/TypeOperator.java @@ -6,9 +6,11 @@ import recoder.java.Expression; import recoder.java.ProgramElement; +import recoder.java.declaration.AnnotationUseSpecification; import recoder.java.expression.Operator; import recoder.java.reference.TypeReference; import recoder.java.reference.TypeReferenceContainer; +import recoder.list.generic.ASTList; /** * Type operator. @@ -23,6 +25,11 @@ public abstract class TypeOperator extends Operator implements TypeReferenceCont */ protected TypeReference typeReference; + /** + * Annotations. + */ + protected ASTList annotations; + /** * Type operator. */ @@ -60,9 +67,15 @@ public TypeOperator(Expression lhs, Expression rhs, TypeReference typeref) { */ protected TypeOperator(TypeOperator proto) { super(proto); + if (proto.annotations != null) { + annotations = proto.annotations.deepClone(); + } + if (proto.typeReference != null) { typeReference = proto.typeReference.deepClone(); } + + makeParentRoleValid(); } /** @@ -73,6 +86,12 @@ public void makeParentRoleValid() { if (typeReference != null) { typeReference.setParent(this); } + + if (annotations != null) { + for (int i = annotations.size() - 1; i >= 0; i -= 1) { + annotations.get(i).setParent(this); + } + } } public int getChildPositionCode(ProgramElement child) { @@ -166,6 +185,10 @@ public TypeReference getTypeReference() { return typeReference; } + public ASTList getAnnotations() { + return annotations; + } + /** * Set type reference. * @@ -175,4 +198,14 @@ public TypeReference getTypeReference() { public void setTypeReference(TypeReference t) { typeReference = t; } + + /** + * Set Annotations. + * + * @param l a list of annotations. + */ + + public void setAnnotations(ASTList l) { + annotations = l; + } }