diff --git a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/TruthValueTracingUtil.java b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/TruthValueTracingUtil.java index bcf25617392..62d018da038 100644 --- a/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/TruthValueTracingUtil.java +++ b/key.core.symbolic_execution/src/main/java/de/uka/ilkd/key/symbolic_execution/TruthValueTracingUtil.java @@ -261,7 +261,7 @@ private static void evaluateNode( } } else if (parent.getAppliedRuleApp() instanceof OneStepSimplifierRuleApp app) { PosInOccurrence parentPio = null; - for (RuleApp protocolApp : app.getProtocol()) { + for (var protocolApp : app.getProtocol()) { if (parentPio != null) { updatePredicateResultBasedOnNewMinorIdsOSS(protocolApp.posInOccurrence(), parentPio, termLabelName, services.getTermBuilder(), nodeResult); diff --git a/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/DLEmbeddedExpression.java b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/DLEmbeddedExpression.java index 6821c7a8efa..a836384279c 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/DLEmbeddedExpression.java +++ b/key.core/src/main/java/de/uka/ilkd/key/java/expression/operator/DLEmbeddedExpression.java @@ -82,7 +82,6 @@ public void visit(Visitor v) { } public void check(Services javaServ, KeYJavaType containingClass) throws ConvertException { - if (functionSymbol == null) { throw new ConvertException("null function symbol"); } @@ -106,7 +105,9 @@ public void check(Services javaServ, KeYJavaType containingClass) throws Convert String qualifier = name.lastIndexOf('.') != -1 ? name.substring(0, name.lastIndexOf('.')) : ""; name = name.substring(name.lastIndexOf('.') + 1); - TypeRef tr = new TypeRef(new ProgramElementName(name, qualifier), 0, null, containingClass); + ProgramElementName peName = qualifier.isEmpty() ? new ProgramElementName(name) + : new ProgramElementName(name, qualifier); + TypeRef tr = new TypeRef(peName, 0, null, containingClass); ExecutionContext ec = new ExecutionContext(tr, null, null); for (int i = 0; i < actual; i++) { @@ -115,7 +116,6 @@ public void check(Services javaServ, KeYJavaType containingClass) throws Convert Expression child = children.get(i); - KeYJavaType kjtActual = javaServ.getTypeConverter().getKeYJavaType(child, ec); if (kjtExpected != null && !kjtActual.getSort().extendsTrans(kjtExpected.getSort())) { 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 404a945b60e..77cacbab43e 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 @@ -151,51 +151,43 @@ public final SortDependingFunction getExactInstanceofSymbol(Sort sort, TermServi @Override public boolean isResponsible(Operator op, JTerm[] subs, Services services, ExecutionContext ec) { - assert false; return false; } @Override public boolean isResponsible(Operator op, JTerm left, JTerm right, Services services, ExecutionContext ec) { - assert false; return false; } @Override public boolean isResponsible(Operator op, JTerm sub, TermServices services, ExecutionContext ec) { - assert false; return false; } @Override public JTerm translateLiteral(Literal lit, Services services) { - assert false; return null; } @Override public Function getFunctionFor(Operator op, Services services, ExecutionContext ec) { - assert false; return null; } @Override public boolean hasLiteralFunction(Function f) { - assert false; return false; } @Override public Expression translateTerm(JTerm t, ExtList children, Services services) { - assert false; return null; } @Override public Type getType(JTerm t) { - assert false; return null; } } diff --git a/key.core/src/main/java/de/uka/ilkd/key/logic/ProgramElementName.java b/key.core/src/main/java/de/uka/ilkd/key/logic/ProgramElementName.java index 2c9251559de..85d1b5db5c5 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/logic/ProgramElementName.java +++ b/key.core/src/main/java/de/uka/ilkd/key/logic/ProgramElementName.java @@ -70,7 +70,7 @@ public ProgramElementName(String name, NameCreationInfo creationInfo, Comment[] public ProgramElementName(String n, String q) { super(q + "::" + n); - assert !q.isEmpty() : "Tried to create qualified name with missing qualifier"; + assert !q.isEmpty() : "Tried to create qualified name with missing qualifier: " + n; this.qualifierString = q.intern(); this.shortName = n.intern(); diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/io/IProofFileParser.java b/key.core/src/main/java/de/uka/ilkd/key/proof/io/IProofFileParser.java index aa958b4efe6..b0b09fb1f39 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/io/IProofFileParser.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/io/IProofFileParser.java @@ -34,7 +34,7 @@ enum ProofElementID { USER_INTERACTION("userinteraction"), PROOF_SCRIPT("proofscript"), NEW_NAMES("newnames"), AUTOMODE_TIME("autoModeTime"), KeY_LOG("keyLog"), KeY_USER("keyUser"), KeY_VERSION("keyVersion"), KeY_SETTINGS("keySettings"), OPEN_GOAL("opengoal"), - NOTES("notes"), SOLVERTYPE("solverType"), MODALITY("modality"); + NOTES("notes"), SOLVERTYPE("solverType"), MODALITY("modality"), OSS_STEP("ossStep"); private final String rawName; diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/io/IntermediateProofReplayer.java b/key.core/src/main/java/de/uka/ilkd/key/proof/io/IntermediateProofReplayer.java index 4e8e558ab5a..81bc98857a4 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/io/IntermediateProofReplayer.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/io/IntermediateProofReplayer.java @@ -406,8 +406,7 @@ public Result replay(ProblemInitializer.ProblemInitializerListener listener, */ private void addChildren(Iterator children, LinkedList intermChildren) { int i = 0; - while (!currGoal.node().isClosed() && children.hasNext() && intermChildren.size() > 0) { - + while (!currGoal.node().isClosed() && children.hasNext() && !intermChildren.isEmpty()) { // NOTE: In the case of an unfinished proof, there // is another node after the last application which // is not represented by an intermediate diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/io/OutputStreamProofSaver.java b/key.core/src/main/java/de/uka/ilkd/key/proof/io/OutputStreamProofSaver.java index 82628ed7db5..bf9e7c1f0c5 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/io/OutputStreamProofSaver.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/io/OutputStreamProofSaver.java @@ -80,7 +80,8 @@ public class OutputStreamProofSaver { * Whether the proof steps should be output (usually true). */ protected final boolean saveProofSteps; - + /// Whether steps by the [OneStepSimplifier] should be expanded. + protected final boolean expandOneStepSimplifier; /** * Extracts java source directory from {@link Proof#header()}, if it exists. @@ -110,6 +111,7 @@ public OutputStreamProofSaver(Proof proof, String internalVersion) { this.proof = proof; this.internalVersion = internalVersion; this.saveProofSteps = true; + this.expandOneStepSimplifier = true; } /** @@ -119,10 +121,12 @@ public OutputStreamProofSaver(Proof proof, String internalVersion) { * @param internalVersion currently running KeY version * @param saveProofSteps whether to save the performed proof steps */ - public OutputStreamProofSaver(Proof proof, String internalVersion, boolean saveProofSteps) { + public OutputStreamProofSaver(Proof proof, String internalVersion, boolean saveProofSteps, + boolean expandOneStepSimplifier) { this.proof = proof; this.internalVersion = internalVersion; this.saveProofSteps = saveProofSteps; + this.expandOneStepSimplifier = expandOneStepSimplifier; } /** @@ -328,13 +332,31 @@ private String newNames2Proof(Node n) { * @param output the writer in which the rule is printed * @throws IOException an exception thrown when printing fails */ - private void printSingleTacletApp(TacletApp appliedRuleApp, Node node, String prefix, Appendable output) throws IOException { + printSingleTacletApp(appliedRuleApp, node, prefix, output, false); + } + /** + * Print applied taclet rule for a single taclet rule application into the passed writer. + * + * @param appliedRuleApp the rule application to be printed + * @param prefix a string which the printed rule is concatenated to + * @param output the writer in which the rule is printed + * @param isOSSStep whether this node is an expanded OSS rule app step + * @throws IOException an exception thrown when printing fails + */ + private void printSingleTacletApp(TacletApp appliedRuleApp, Node node, String prefix, + Appendable output, boolean isOSSStep) throws IOException { + /* + * An OSS rule application may contain rule applications on top-level formulas that get + * deleted when expanding the OSS steps. In that case, the rule after the OSS must also be + * deleted, as the formula to be removed was never added in the first place. + */ + String tacletName = appliedRuleApp.taclet().name().toString(); output.append(prefix); output.append("(rule \""); - output.append(appliedRuleApp.rule().name().toString()); + output.append(tacletName); output.append("\""); output.append(posInOccurrence2Proof(node.sequent(), appliedRuleApp.posInOccurrence())); output.append(newNames2Proof(node)); @@ -346,6 +368,9 @@ private void printSingleTacletApp(TacletApp appliedRuleApp, Node node, String pr } output.append(""); userInteraction2Proof(node, output); + if (isOSSStep) { + output.append(" (ossStep)"); + } notes2Proof(node, output); output.append(")\n"); } @@ -528,7 +553,7 @@ private void printRuleJustification(IBuiltInRuleApp appliedRuleApp, Appendable o private void printSingleBuiltInRuleApp(IBuiltInRuleApp appliedRuleApp, Node node, String prefix, Appendable output) throws IOException { output.append(prefix); - output.append(" (builtin \""); + output.append("(builtin \""); output.append(appliedRuleApp.rule().name().toString()); output.append("\""); output.append(posInOccurrence2Proof(node.sequent(), appliedRuleApp.posInOccurrence())); @@ -592,11 +617,37 @@ private void printSingleNode(Node node, String prefix, Appendable output) throws if (appliedRuleApp instanceof TacletApp) { printSingleTacletApp((TacletApp) appliedRuleApp, node, prefix, output); + } else if (expandOneStepSimplifier + && appliedRuleApp instanceof OneStepSimplifierRuleApp ossa) { + printExpandedOneStepSimplifierRuleApp(ossa, node, prefix, output); } else if (appliedRuleApp instanceof IBuiltInRuleApp) { printSingleBuiltInRuleApp((IBuiltInRuleApp) appliedRuleApp, node, prefix, output); } } + private void printExpandedOneStepSimplifierRuleApp(OneStepSimplifierRuleApp ossa, Node node, + String prefix, Appendable output) throws IOException { + OneStepSimplifier.Protocol protocol = ossa.getProtocol(); + int seqFNum = node.sequent().formulaNumberInSequent(ossa.posInOccurrence()); + for (int i = 0; i < protocol.size(); i++) { + var app = protocol.get(i); + Node n = new Node(node.proof()); + if (i == 0) { + n.setNameRecorder(node.getNameRecorder()); + } + Sequent seq = node.sequent() + .replaceFormula(seqFNum, app.posInOccurrence().sequentFormula()).sequent(); + n.setSequent(seq); + if (app instanceof TacletApp ta) { + printSingleTacletApp(ta, n, prefix, output, true); + } else if (app instanceof IBuiltInRuleApp ba) { + // This case does not currently happen, but just in case any built-ins get added to + // the OSS... + printSingleBuiltInRuleApp(ba, n, prefix, output); + } + } + } + /** * Print applied rule(s) for a proof node and its decendants into the passed writer. * @@ -606,7 +657,6 @@ private void printSingleNode(Node node, String prefix, Appendable output) throws * @throws IOException an exception thrown when printing fails */ private void collectProof(Node node, String prefix, Appendable output) throws IOException { - printSingleNode(node, prefix, output); Iterator childrenIt; @@ -695,8 +745,9 @@ public static String posInOccurrence2Proof(Sequent seq, if (pos == null) { return ""; } + int inSequent = seq.formulaNumberInSequent(pos.isInAntec(), pos.sequentFormula()); return " (formula \"" - + seq.formulaNumberInSequent(pos.isInAntec(), pos.sequentFormula()) + + inSequent + "\")" + posInTerm2Proof(pos.posInTerm()); } @@ -763,7 +814,6 @@ public String assumesFormulaInsts(Node node, sequentFormula)) .append("\")"); } else if (assumesFormulaInstantiation instanceof AssumesFormulaInstDirect) { - final String directInstantiation = printTerm((JTerm) sequentFormula.formula(), node.proof().getServices()); diff --git a/key.core/src/main/java/de/uka/ilkd/key/proof/io/ProofSaver.java b/key.core/src/main/java/de/uka/ilkd/key/proof/io/ProofSaver.java index 48148ff405a..f3a1516ab6f 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/proof/io/ProofSaver.java +++ b/key.core/src/main/java/de/uka/ilkd/key/proof/io/ProofSaver.java @@ -50,7 +50,7 @@ public static void saveToFile(Path file, Proof proof) throws IOException { * @throws IOException on any I/O error */ public static void saveProofObligationToFile(Path file, Proof proof) throws IOException { - ProofSaver saver = new ProofSaver(proof, file, false); + ProofSaver saver = new ProofSaver(proof, file, false, false); saver.save(); } @@ -88,9 +88,12 @@ public ProofSaver(Proof proof, Path file, String internalVersion) { * @param proof proof to save * @param file file to save proof into * @param saveProofSteps whether to save proof steps (false -> only proof obligation) + * @param expandOneStepSimplifier whether to expand + * {@link de.uka.ilkd.key.rule.OneStepSimplifier} rule apps */ - public ProofSaver(Proof proof, Path file, boolean saveProofSteps) { - this(proof, file, KeYConstants.INTERNAL_VERSION, saveProofSteps); + public ProofSaver(Proof proof, Path file, boolean saveProofSteps, + boolean expandOneStepSimplifier) { + this(proof, file, KeYConstants.INTERNAL_VERSION, saveProofSteps, expandOneStepSimplifier); } /** @@ -100,9 +103,12 @@ public ProofSaver(Proof proof, Path file, boolean saveProofSteps) { * @param file file to save proof into * @param internalVersion version of KeY to add to the proof log * @param saveProofSteps whether to save proof steps (false -> only proof obligation) + * @param expandOneStepSimplifier whether to expand + * {@link de.uka.ilkd.key.rule.OneStepSimplifier} rule apps */ - public ProofSaver(Proof proof, Path file, String internalVersion, boolean saveProofSteps) { - super(proof, internalVersion, saveProofSteps); + public ProofSaver(Proof proof, Path file, String internalVersion, boolean saveProofSteps, + boolean expandOneStepSimplifier) { + super(proof, internalVersion, saveProofSteps, expandOneStepSimplifier); this.file = file; } diff --git a/key.core/src/main/java/de/uka/ilkd/key/rule/OneStepSimplifier.java b/key.core/src/main/java/de/uka/ilkd/key/rule/OneStepSimplifier.java index 5f5d6cb4986..361dbdb8d1e 100644 --- a/key.core/src/main/java/de/uka/ilkd/key/rule/OneStepSimplifier.java +++ b/key.core/src/main/java/de/uka/ilkd/key/rule/OneStepSimplifier.java @@ -39,7 +39,7 @@ import org.key_project.prover.rules.ApplicationRestriction; import org.key_project.prover.rules.RuleApp; import org.key_project.prover.rules.RuleSet; -import org.key_project.prover.rules.instantiation.AssumesFormulaInstDirect; +import org.key_project.prover.rules.instantiation.AssumesFormulaInstSeq; import org.key_project.prover.rules.instantiation.AssumesFormulaInstantiation; import org.key_project.prover.sequent.*; import org.key_project.util.LRUCache; @@ -261,8 +261,11 @@ private SequentFormula simplifyPos(Goal goal, } } RewriteTaclet taclet = (RewriteTaclet) app.rule(); + TermLabelState termLabelState = new TermLabelState(); SequentFormula result = - taclet.getRewriteResult(goal, new TermLabelState(), services, app); + taclet.getRewriteResult(goal, termLabelState, services, app); + TermLabelManager.refactorSequent(termLabelState, services, pos, taclet, goal, null, + null); if (protocol != null) { protocol.add(app); } @@ -335,24 +338,27 @@ private SequentFormula simplifyPosOrSub(Goal goal, */ private JTerm replaceKnownHelper( Map map, JTerm in, - boolean inAntecedent, /* out */ List ifInsts, Protocol protocol, - Goal goal, RuleApp ruleApp) { + Goal goal, RuleApp ruleApp, PosInOccurrence findPos) { var services = goal.getOverlayServices(); - final PosInOccurrence pos = + final PosInOccurrence assumesPos = map.get(new TermReplacementKey(in)); - if (pos != null) { - ifInsts.add(pos); + if (assumesPos != null) { + ifInsts.add(assumesPos); if (protocol != null) { - protocol.add(makeReplaceKnownTacletApp(in, inAntecedent, pos)); + protocol.add(makeReplaceKnownTacletApp(assumesPos, findPos, + goal.sequent())); } JTerm result = - pos.isInAntec() ? services.getTermBuilder().tt() : services.getTermBuilder().ff(); - // TODO: pos.subTerm() == in should be true which is currently not the case (labels are + assumesPos.isInAntec() ? services.getTermBuilder().tt() + : services.getTermBuilder().ff(); + // TODO: assumesPos.subTerm() == in should be true which is currently not the case + // (labels are // missing) ImmutableArray labels = - TermLabelManager.instantiateLabels(new TermLabelState(), services, in, pos, this, + TermLabelManager.instantiateLabels(new TermLabelState(), services, in, assumesPos, + this, ruleApp, goal, null, null, result); if (labels != null && !labels.isEmpty()) { result = services.getTermBuilder().label(result, labels); @@ -365,8 +371,8 @@ private JTerm replaceKnownHelper( JTerm[] subs = new JTerm[in.arity()]; boolean changed = false; for (int i = 0; i < subs.length; i++) { - subs[i] = replaceKnownHelper(map, in.sub(i), inAntecedent, ifInsts, protocol, - goal, ruleApp); + subs[i] = replaceKnownHelper(map, in.sub(i), ifInsts, protocol, + goal, ruleApp, findPos.down(i)); if (subs[i] != in.sub(i)) { changed = true; } @@ -396,8 +402,8 @@ private SequentFormula replaceKnown( return null; } final JTerm formula = (JTerm) cf.formula(); - final JTerm simplifiedFormula = replaceKnownHelper(context, formula, inAntecedent, ifInsts, - protocol, goal, ruleApp); + final JTerm simplifiedFormula = replaceKnownHelper(context, formula, ifInsts, + protocol, goal, ruleApp, ruleApp.posInOccurrence()); if (simplifiedFormula.equals(formula)) { return null; } else { @@ -405,11 +411,10 @@ private SequentFormula replaceKnown( } } - private RuleApp makeReplaceKnownTacletApp(JTerm formula, - boolean inAntecedent, - PosInOccurrence pio) { + private RuleApp makeReplaceKnownTacletApp(PosInOccurrence assumesPos, PosInOccurrence findPos, + Sequent seq) { FindTaclet taclet; - if (pio.isInAntec()) { + if (assumesPos.isInAntec()) { taclet = (FindTaclet) lastProof.getInitConfig() .lookupActiveTaclet(new Name("replace_known_left")); } else { @@ -419,21 +424,14 @@ private RuleApp makeReplaceKnownTacletApp(JTerm formula, SVInstantiations svi = SVInstantiations.EMPTY_SVINSTANTIATIONS; FormulaSV sv = SchemaVariableFactory.createFormulaSV(new Name("b")); - svi.add(sv, (JTerm) pio.sequentFormula().formula(), lastProof.getServices()); - - PosInOccurrence applicatinPIO = - new PosInOccurrence(new SequentFormula(formula), PosInTerm.getTopLevel(), // TODO: This - // should be - // the precise - // sub term - inAntecedent); // It is required to create a new PosInOccurrence because formula and - // pio.constrainedFormula().formula() are only equals module - // renamings and term labels + svi.add(sv, assumesPos.sequentFormula().formula(), lastProof.getServices()); + ImmutableList ifInst = ImmutableSLList.nil(); - ifInst = ifInst.append(new AssumesFormulaInstDirect(pio.sequentFormula())); - TacletApp ta = PosTacletApp.createPosTacletApp(taclet, svi, ifInst, applicatinPIO, + ifInst = + ifInst.append(new AssumesFormulaInstSeq(seq, assumesPos.isInAntec(), + assumesPos.sequentFormula())); + return PosTacletApp.createPosTacletApp(taclet, svi, ifInst, findPos, lastProof.getServices()); - return ta; } /** @@ -467,6 +465,15 @@ private SequentFormula simplifyConstrainedFormula( return null; } + /// @return true iff the formula `sf` is already on the semi sequent `semi` (module renaming). + /// Models the behavior of normal rule applications on the sequent. + private boolean isRedundant(SequentFormula sf, Semisequent semi) { + for (var s : semi) { + if (RENAMING_TERM_PROPERTY.equalsModThisProperty(s.formula(), sf.formula())) + return true; + } + return false; + } /** * Freshly computes the overall simplification result for the passed constrained formula. @@ -495,6 +502,8 @@ private Instantiation computeInstantiation(PosInOccurrence ossPIO, final List ifInsts = new ArrayList<>(seq.size()); + var semi = ossPIO.isInAntec() ? goal.sequent().antecedent() : goal.sequent().succedent(); + // simplify as long as possible ImmutableList list = ImmutableSLList.nil(); SequentFormula simplifiedCf = cf; @@ -506,6 +515,10 @@ private Instantiation computeInstantiation(PosInOccurrence ossPIO, } else { break; } + if (isRedundant(simplifiedCf, semi)) { + // Formula will be removed, we are done + break; + } } // return @@ -595,8 +608,7 @@ public boolean isApplicable(Goal goal, PosInOccurrence pio) { // applicable to the formula? return applicableTo(goal.proof().getServices(), pio.sequentFormula(), - pio.isInAntec(), goal, - null); + pio.isInAntec(), goal, null); } @Override @@ -651,7 +663,6 @@ public boolean isApplicable(Goal goal, PosInOccurrence pio) { inst.getNumAppliedRules() + (inst.getNumAppliedRules() > 1 ? " rules" : " rule")); ((IBuiltInRuleApp) ruleApp).setAssumesInsts(inst.getIfInsts()); - return result; } @@ -731,7 +742,7 @@ public OneStepSimplifierRuleApp createApp(PosInOccurrence pos, TermServices serv /** * Instances of this class are used in the {@link Map} of * {@link OneStepSimplifier#replaceKnown} to - * forece the same behavior as in Taclet rules where names of logical variables and + * force the same behavior as in Taclet rules where names of logical variables and * {@link TermLabel}s are ignored. * * @author Martin Hentschel @@ -770,8 +781,9 @@ public boolean equals(Object obj) { obj = ((TermReplacementKey) obj).term; } if (obj instanceof JTerm t) { - return RENAMING_TERM_PROPERTY.equalsModThisProperty(term, t); // Ignore naming and - // term + return RENAMING_TERM_PROPERTY.equalsModThisProperty(term, t); // + // Ignore naming and + // term // labels in the way a // taclet rule does. } else { diff --git a/key.ncore.calculus/src/main/java/org/key_project/prover/sequent/Sequent.java b/key.ncore.calculus/src/main/java/org/key_project/prover/sequent/Sequent.java index 232064588ad..67de6c45289 100644 --- a/key.ncore.calculus/src/main/java/org/key_project/prover/sequent/Sequent.java +++ b/key.ncore.calculus/src/main/java/org/key_project/prover/sequent/Sequent.java @@ -46,7 +46,6 @@ /// @see SequentChangeInfo /// @see PosInOccurrence public abstract class Sequent implements Iterable, SyntaxElement { - private final Semisequent antecedent; private final Semisequent succedent; diff --git a/key.ui/examples/heap/verifyThis15_2_ParallelGcd/parallelGcd.proof b/key.ui/examples/heap/verifyThis15_2_ParallelGcd/parallelGcd.proof index 9af804bfa28..734b712922d 100644 --- a/key.ui/examples/heap/verifyThis15_2_ParallelGcd/parallelGcd.proof +++ b/key.ui/examples/heap/verifyThis15_2_ParallelGcd/parallelGcd.proof @@ -1,58 +1,91 @@ \profile "Java Profile"; -\settings { -"#Proof-Settings-Config-File -#Thu Mar 16 12:59:23 CET 2023 -[NewSMT]NoTypeHierarchy=false -[Labels]UseOriginLabels=true -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[NewSMT]Presburger=false -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=JavaCard-JavaCard\\:off , Strings-Strings\\:on , assertions-assertions\\:safe , bigint-bigint\\:on , floatRules-floatRules\\:strictfpOnly , initialisation-initialisation\\:disableStaticInitialisation , intRules-intRules\\:arithmeticSemanticsIgnoringOF , integerSimplificationRules-integerSimplificationRules\\:full , javaLoopTreatment-javaLoopTreatment\\:efficient , mergeGenerateIsWeakeningGoal-mergeGenerateIsWeakeningGoal\\:off , methodExpansion-methodExpansion\\:modularOnly , modelFields-modelFields\\:treatAsAxiom , moreSeqRules-moreSeqRules\\:off , permissions-permissions\\:off , programRules-programRules\\:Java , reach-reach\\:on , runtimeExceptions-runtimeExceptions\\:allow , sequences-sequences\\:on , wdChecks-wdChecks\\:off , wdOperator-wdOperator\\:L -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_INVARIANT -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=50000 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_DEFAULT -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_OFF -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]MPS_OPTIONS_KEY=MPS_MERGE -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_OFF -[SMTSettings]useUninterpretedMultiplication=true -[NewSMT]sqrtSMTTranslation=SMT -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT_INTERNAL -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[NewSMT]identifier=OPEN -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]OSS_OPTIONS_KEY=OSS_ON -[NewSMT]Axiomatisations=false -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} +\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:allow", + "sequences" : "sequences:on", + "soundDefaultContracts" : "soundDefaultContracts:on", + "wdChecks" : "wdChecks:off", + "wdOperator" : "wdOperator:L" + }, + "Labels" : { + "UseOriginLabels" : true + }, + "NewSMT" : { + "Axiomatisations" : "false", + "NoTypeHierarchy" : "false", + "Presburger" : "false", + "identifier" : "OPEN", + "sqrtSMTTranslation" : "SMT" + }, + "SMTSettings" : { + "SelectedTaclets" : [ + + ], + "UseBuiltUniqueness" : false, + "explicitTypeHierarchy" : false, + "instantiateHierarchyAssumptions" : true, + "integersMaximum" : 2147483645, + "integersMinimum" : -2147483645, + "invariantForall" : false, + "maxGenericSorts" : 2, + "useConstantsForBigOrSmallIntegers" : true, + "useUninterpretedMultiplication" : true + }, + "Strategy" : { + "ActiveStrategy" : "JavaCardDLStrategy", + "MaximumNumberOfAutomaticApplications" : 50000, + "Timeout" : -1, + "options" : { + "AUTO_INDUCTION_OPTIONS_KEY" : "AUTO_INDUCTION_OFF", + "BLOCK_OPTIONS_KEY" : "BLOCK_CONTRACT_INTERNAL", + "CLASS_AXIOM_OPTIONS_KEY" : "CLASS_AXIOM_OFF", + "DEP_OPTIONS_KEY" : "DEP_ON", + "LOOP_OPTIONS_KEY" : "LOOP_INVARIANT", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_DEF_OPS", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_OFF", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } -\javaSource "src"; -\proofObligation { - "contract": "ParallelGcd[ParallelGcd::parallelGcd(int,int,[Z)].JML behavior operation contract.0", - "name": "ParallelGcd[ParallelGcd::parallelGcd(int,int,[Z)].JML behavior operation contract.0", - "class": "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", +\javaSource "src";\proofObligation +// +{ + "class" : "de.uka.ilkd.key.proof.init.FunctionalOperationContractPO", + "contract" : "ParallelGcd[ParallelGcd::parallelGcd(int,int,[Z)].JML behavior operation contract.0", + "name" : "ParallelGcd[ParallelGcd::parallelGcd(int,int,[Z)].JML behavior operation contract.0" } \proof { @@ -60,11 +93,16 @@ (keyLog "1" (keyUser "bubel" ) (keyVersion "0a641f6b38")) (keyLog "2" (keyUser "Julian" ) (keyVersion "d707dbd7db")) (keyLog "3" (keyUser "Julian" ) (keyVersion "9f937a1ea4")) +(keyLog "4" (keyUser "daniel" ) (keyVersion "7a6dafd97c2d6d8520b96915668a1631c9c05aed")) +(keyLog "5" (keyUser "daniel" ) (keyVersion "7a6dafd97c2d6d8520b96915668a1631c9c05aed")) (autoModeTime "34901602840") (branch "dummy ID" - (builtin "One Step Simplification" (formula "1") (newnames "heapAtPre,o,f")) +(rule "expandInInt" (formula "1") (term "0,0,1,0,0,0") (newnames "heapAtPre,o,f") (ossStep)) +(rule "concrete_and_1" (formula "1") (term "0,1,0,0,0") (ossStep)) +(rule "expandInInt" (formula "1") (term "0,1,0,0,0") (ossStep)) +(rule "concrete_and_1" (formula "1") (term "1,0,0,0") (ossStep)) (rule "impRight" (formula "1")) (rule "andLeft" (formula "1")) (rule "andLeft" (formula "1")) @@ -78,33 +116,158 @@ (rule "add_zero_right" (formula "7") (term "0,0,1,0,0,0,1")) (rule "polySimp_mulComm0" (formula "7") (term "1,0,0,1,0,0,0,1")) (rule "assignment" (formula "7") (term "1")) - (builtin "One Step Simplification" (formula "7")) +(rule "sequentialToParallel2" (formula "7") (ossStep)) +(rule "simplifyUpdate3" (formula "7") (term "1,0") (ossStep)) (rule "inEqSimp_sepNegMonomial0" (formula "7") (term "0,1,0,0,0,1")) (rule "polySimp_mulLiterals" (formula "7") (term "0,0,1,0,0,0,1")) (rule "polySimp_elimOne" (formula "7") (term "0,0,1,0,0,0,1")) (rule "methodBodyExpand" (formula "7") (term "1") (newnames "heapBefore_parallelGcd,savedHeapBefore_parallelGcd,_aInBefore_parallelGcd,_bInBefore_parallelGcd,_rBefore_parallelGcd")) - (builtin "One Step Simplification" (formula "7")) +(rule "simplifyUpdate2" (formula "7") (term "1") (ossStep)) +(rule "sequentialToParallel2" (formula "7") (ossStep)) +(rule "simplifyUpdate3" (formula "7") (term "1,0") (ossStep)) (rule "variableDeclarationAssign" (formula "7") (term "1")) (rule "variableDeclaration" (formula "7") (term "1") (newnames "a")) (rule "assignment" (formula "7") (term "1")) - (builtin "One Step Simplification" (formula "7")) +(rule "sequentialToParallel2" (formula "7") (ossStep)) +(rule "simplifyUpdate3" (formula "7") (term "1,0") (ossStep)) +(rule "applyOnElementary" (formula "7") (term "1,0") (ossStep)) +(rule "applyOnPV" (formula "7") (term "0,1,0") (ossStep)) (rule "variableDeclarationAssign" (formula "7") (term "1")) (rule "variableDeclaration" (formula "7") (term "1") (newnames "b")) (rule "assignment" (formula "7") (term "1")) - (builtin "One Step Simplification" (formula "7")) +(rule "sequentialToParallel2" (formula "7") (ossStep)) +(rule "simplifyUpdate3" (formula "7") (term "1,0") (ossStep)) +(rule "applyOnElementary" (formula "7") (term "1,0") (ossStep)) +(rule "applyOnPV" (formula "7") (term "0,1,0") (ossStep)) (rule "variableDeclarationAssign" (formula "7") (term "1")) (rule "variableDeclaration" (formula "7") (term "1") (newnames "i")) (rule "assignment" (formula "7") (term "1")) - (builtin "One Step Simplification" (formula "7")) +(rule "sequentialToParallel2" (formula "7") (ossStep)) +(rule "simplifyUpdate3" (formula "7") (term "1,0") (ossStep)) (rule "replace_known_right" (formula "2") (term "0") (ifseqformula "6") (userinteraction)) - (builtin "One Step Simplification" (formula "2")) - (builtin "Loop Invariant" (formula "7") (newnames "variant,b_0,heapBefore_LOOP,iBefore_LOOP,bBefore_LOOP,aBefore_LOOP,i_0,b_1,a_0,heap_After_LOOP,anon_heap_LOOP,o,f")) +(rule "concrete_or_2" (formula "2") (ossStep)) +(builtin "Loop Invariant" (formula "7") (newnames "variant,b_0,heapBefore_LOOP,iBefore_LOOP,bBefore_LOOP,aBefore_LOOP,i_0,b_1,a_0,heap_After_LOOP,anon_heap_LOOP,o,f")) (branch "Invariant Initially Valid" - (builtin "One Step Simplification" (formula "7") (ifInst "" (formula "1")) (ifInst "" (formula "4")) (ifInst "" (formula "5"))) + (rule "simplifyUpdate2" (formula "7") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1") (ossStep)) + (rule "replace_known_left" (formula "7") (term "1") (ifseqformula "1") (ossStep)) + (rule "concrete_and_3" (formula "7") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,0,0,0,0") (ossStep)) + (rule "replace_known_left" (formula "7") (term "1,0,0,0,0") (ifseqformula "4") (ossStep)) + (rule "concrete_and_3" (formula "7") (term "0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,0,0,0") (ossStep)) + (rule "replace_known_left" (formula "7") (term "1,0,0,0") (ifseqformula "5") (ossStep)) + (rule "concrete_and_3" (formula "7") (term "0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,0,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,1,1,0,0") (ossStep)) + (rule "eqClose" (formula "7") (term "1,0,0") (ossStep)) + (rule "concrete_and_3" (formula "7") (term "0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,0,1,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,1,1,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "2,1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,2,1,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,2,1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,2,1,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,2,1,1,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,0,1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "3,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,3,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,3,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,3,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,3,1,1,1") (ossStep)) (rule "Contract_axiom_for_gcd_in_ParallelGcd" (formula "7") (term "0,1,1") (inst "i=i_1") (userinteraction)) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "5")) (ifInst "" (formula "6")) (ifInst "" (formula "2")) (ifInst "" (formula "2"))) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "5") (ossStep)) + (rule "replace_known_left" (formula "1") (term "1,0,0") (ifseqformula "6") (ossStep)) + (rule "replace_known_left" (formula "1") (term "0,1,0") (ifseqformula "2") (ossStep)) + (rule "replace_known_left" (formula "1") (term "1,1,0") (ifseqformula "2") (ossStep)) + (rule "eq_and" (formula "1") (term "0") (ossStep)) + (rule "concrete_and_1" (formula "1") (term "0") (ossStep)) + (rule "concrete_impl_1" (formula "1") (ossStep)) + (rule "expandInInt" (formula "1") (term "1,0,0,0,1,0,0,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0,0,0,1,0,0,0") (ossStep)) (rule "leq_literals" (formula "8") (term "0,0")) - (builtin "One Step Simplification" (formula "8")) + (rule "concrete_and_1" (formula "8") (term "0") (ossStep)) (rule "andLeft" (formula "1")) (rule "andLeft" (formula "1")) (rule "andLeft" (formula "1")) @@ -118,12 +281,193 @@ (rule "eqSymm" (formula "5") (term "1")) (rule "eqSymm" (formula "4") (term "0")) (rule "replace_known_left" (formula "14") (term "0") (ifseqformula "6")) - (builtin "One Step Simplification" (formula "14") (ifInst "" (formula "5"))) + (rule "replace_known_left" (formula "14") (term "1") (ifseqformula "5") (ossStep)) + (rule "concrete_and_1" (formula "14") (ossStep)) (rule "closeTrue" (formula "14")) ) (branch "Body Preserves Invariant" - (builtin "One Step Simplification" (formula "9")) - (builtin "One Step Simplification" (formula "7")) + (rule "simplifyUpdate2" (formula "9") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "9") (term "1,1,1") (ossStep)) + (rule "simplifyUpdate2" (formula "9") (term "0,1,1,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "9") (term "1,1") (ossStep)) + (rule "simplifyUpdate2" (formula "9") (term "0,1,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "9") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "9") (term "0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "9") (ossStep)) + (rule "simplifyUpdate2" (formula "9") (term "0") (ossStep)) + (rule "sequentialToParallel2" (formula "9") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "9") (term "0") (ossStep)) + (rule "simplifyUpdate3" (formula "9") (term "0,0") (ossStep)) + (rule "sequentialToParallel2" (formula "9") (term "1,1,1") (ossStep)) + (rule "simplifyUpdate3" (formula "9") (term "1,0,1,1,1") (ossStep)) + (rule "applyOnElementary" (formula "9") (term "1,0,1,1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "9") (term "0,1,0,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "9") (term "0,0,1,0,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "9") (term "1,0,1,0,1,1,1") (ossStep)) + (rule "sequentialToParallel2" (formula "9") (term "1,1") (ossStep)) + (rule "simplifyUpdate3" (formula "9") (term "1,0,1,1") (ossStep)) + (rule "sequentialToParallel2" (formula "9") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "9") (term "1") (ossStep)) + (rule "simplifyUpdate3" (formula "9") (term "1,0,1") (ossStep)) + (rule "applyOnParallel" (formula "9") (term "1,0,1") (ossStep)) + (rule "simplifyUpdate3" (formula "9") (term "0,1,0,1") (ossStep)) + (rule "applyOnParallel" (formula "9") (term "1,1,0,1") (ossStep)) + (rule "simplifyUpdate3" (formula "9") (term "0,1,1,0,1") (ossStep)) + (rule "applyOnElementary" (formula "9") (term "1,1,1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "9") (term "0,1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "9") (term "1,0,1,1,1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "9") (term "0,0,1,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "9") (term "0,0,0,1,1,1,0,1") (ossStep)) + (rule "expandInInt" (formula "7") (term "0,0,1,1,1") (ossStep)) + (rule "concrete_and_1" (formula "7") (term "0,1,1,1") (ossStep)) + (rule "expandInInt" (formula "7") (term "0,1,1,1") (ossStep)) + (rule "concrete_and_1" (formula "7") (term "1,1,1") (ossStep)) + (rule "expandInInt" (formula "7") (term "1,1,1") (ossStep)) + (rule "concrete_and_3" (formula "7") (term "1,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0,0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,0,0,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,0,0,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,0,0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,0,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,0,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,0,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,0,1,0,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,1,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,1,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,0,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,0,1,1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,1,1,1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "2,1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,2,1,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,2,1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,2,1,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,2,1,1,1,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,1,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,0,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,0,1,1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "3,1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,3,1,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,3,1,1,1,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,3,1,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,3,1,1,1,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,1,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,1") (ossStep)) (rule "impRight" (formula "9")) (rule "andLeft" (formula "8")) (rule "andLeft" (formula "8")) @@ -135,12 +479,30 @@ (rule "variableDeclarationAssign" (formula "13") (term "1")) (rule "variableDeclaration" (formula "13") (term "1") (newnames "b_0_2")) (rule "inequality_comparison_simple" (formula "13") (term "1")) - (builtin "One Step Simplification" (formula "13")) + (rule "sequentialToParallel2" (formula "13") (ossStep)) + (rule "simplifyUpdate2" (formula "13") (ossStep)) + (rule "simplifyUpdate3" (formula "13") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "13") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "13") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "13") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "13") (term "2,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "13") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "13") (term "0,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "13") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "13") (term "1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "13") (term "1,0,0,1,0") (ossStep)) (rule "eqSymm" (formula "13") (term "0,0,1,0")) (rule "methodCallEmpty" (formula "13") (term "1")) - (builtin "One Step Simplification" (formula "13")) + (rule "simplifyUpdate2" (formula "13") (ossStep)) (rule "emptyModality" (formula "13") (term "1")) - (builtin "One Step Simplification" (formula "13")) + (rule "applyOnRigidFormula" (formula "13") (ossStep)) + (rule "applyOnRigidFormula" (formula "13") (term "0") (ossStep)) + (rule "applyOnPV" (formula "13") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "13") (term "1,0") (ossStep)) + (rule "ifthenelse_concrete4" (formula "13") (term "0") (ossStep)) + (rule "boolean_not_equal_2" (formula "13") (term "1,0") (ossStep)) + (rule "concrete_or_4" (formula "13") (term "0") (ossStep)) + (rule "double_not" (formula "13") (ossStep)) (rule "eqSymm" (formula "15") (term "1,1,0,0,1,1,0,1")) (rule "eqSymm" (formula "15") (term "1,1,0,0,0,1,1,0,1")) (rule "eqSymm" (formula "12") (term "1")) @@ -161,7 +523,8 @@ (rule "variableDeclarationAssign" (formula "15") (term "1")) (rule "variableDeclaration" (formula "15") (term "1") (newnames "exc_1")) (rule "assignment" (formula "15") (term "1")) - (builtin "One Step Simplification" (formula "15")) + (rule "sequentialToParallel2" (formula "15") (ossStep)) + (rule "simplifyUpdate3" (formula "15") (term "1,0") (ossStep)) (rule "variableDeclaration" (formula "15") (term "1") (newnames "thrownExc")) (rule "applyEq" (formula "11") (term "1,1") (ifseqformula "10")) (rule "applyEq" (formula "12") (term "1,1") (ifseqformula "10")) @@ -169,14 +532,28 @@ (rule "ifUnfold" (formula "15") (term "1") (inst "#boolv=x;")) (rule "variableDeclaration" (formula "15") (term "1") (newnames "x")) (rule "inequality_comparison_simple" (formula "15") (term "1")) - (builtin "One Step Simplification" (formula "15")) + (rule "sequentialToParallel2" (formula "15") (ossStep)) + (rule "simplifyUpdate3" (formula "15") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "15") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "15") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "2,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "0,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "15") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "15") (term "1,0,0,1,0") (ossStep)) (rule "eqSymm" (formula "15") (term "0,0,1,0")) (rule "replace_known_right" (formula "15") (term "0,0,1,0") (ifseqformula "13")) - (builtin "One Step Simplification" (formula "15")) + (rule "ifthenelse_false" (formula "15") (term "0,1,0") (ossStep)) (rule "ifSplit" (formula "15")) (branch "if x true" - (builtin "One Step Simplification" (formula "16")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "16") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "eqClose" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "ifUnfold" (formula "15") (term "1") (inst "#boolv=x;")) (rule "variableDeclaration" (formula "15") (term "1") (newnames "x_1")) @@ -185,15 +562,38 @@ (rule "variableDeclaration" (formula "15") (term "1") (newnames "x_2")) (rule "assignment_read_length" (formula "15") (term "1")) (branch "Normal Execution (_r != null)" - (builtin "One Step Simplification" (formula "16")) - (builtin "One Step Simplification" (formula "15") (ifInst "" (formula "14"))) - (rule "false_right" (formula "15")) + (rule "sequentialToParallel2" (formula "16") (ossStep)) + (rule "simplifyUpdate3" (formula "16") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "16") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "16") (term "0,1,0") (ossStep)) + (rule "applyOnPV" (formula "16") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "15") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (ossStep)) + (rule "applyOnPV" (formula "15") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1") (ossStep)) (rule "less_equal_than_comparison_simple" (formula "15") (term "1")) - (builtin "One Step Simplification" (formula "15")) + (rule "sequentialToParallel2" (formula "15") (ossStep)) + (rule "simplifyUpdate2" (formula "15") (ossStep)) + (rule "simplifyUpdate3" (formula "15") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "15") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "15") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "2,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "0,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "15") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "15") (term "1,0,0,1,0") (ossStep)) (rule "ifSplit" (formula "15")) (branch "if x_1 true" - (builtin "One Step Simplification" (formula "16")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "16") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "ifthenelse_concrete3" (formula "1") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "1") (ossStep)) + (rule "concrete_or_4" (formula "1") (ossStep)) (rule "blockThrow" (formula "16") (term "1")) (rule "throwUnfold" (formula "16") (term "1") (inst "#v0=e;")) (rule "variableDeclarationAssign" (formula "16") (term "1")) @@ -211,135 +611,343 @@ (rule "staticMethodCallStaticWithAssignmentViaTypereference" (formula "18") (term "1") (inst "#v0=e_2;")) (rule "variableDeclaration" (formula "18") (term "1") (newnames "e_2")) (rule "methodBodyExpand" (formula "18") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "18")) + (rule "simplifyUpdate2" (formula "18") (term "1") (ossStep)) (rule "variableDeclaration" (formula "18") (term "1") (newnames "__NEW__")) (rule "staticMethodCallStaticWithAssignmentViaTypereference" (formula "18") (term "1") (inst "#v0=e_3;")) (rule "variableDeclaration" (formula "18") (term "1") (newnames "e_3")) (rule "allocateInstance" (formula "18")) - (builtin "One Step Simplification" (formula "19")) - (builtin "One Step Simplification" (formula "1")) + (rule "sequentialToParallel2" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (ossStep)) + (rule "simplifyUpdate3" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1,1,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (term "0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0,1,0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "1,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0,1,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "1") (term "0,0,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0,0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0,0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "2,0,0,1,1,0") (ossStep)) (rule "wellFormedAnon" (formula "1") (term "0,1,0")) (rule "andLeft" (formula "1")) (rule "andLeft" (formula "1")) (rule "notLeft" (formula "1")) (rule "replace_known_left" (formula "1") (term "1,0") (ifseqformula "11")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "6"))) + (rule "replace_known_left" (formula "1") (term "0,0") (ifseqformula "6") (ossStep)) + (rule "concrete_and_1" (formula "1") (term "0") (ossStep)) + (rule "concrete_impl_1" (formula "1") (ossStep)) (rule "notLeft" (formula "1")) (rule "blockEmpty" (formula "21") (term "1")) (rule "assignment" (formula "21") (term "1")) - (builtin "One Step Simplification" (formula "21")) + (rule "sequentialToParallel2" (formula "21") (ossStep)) + (rule "simplifyUpdate3" (formula "21") (term "1,0") (ossStep)) (rule "selectCreatedOfAnonAsFormula" (formula "17")) (rule "orRight" (formula "17")) (rule "methodBodyExpand" (formula "22") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "22")) + (rule "simplifyUpdate2" (formula "22") (term "1") (ossStep)) (rule "assignment_write_attribute_this" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "22") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "3,0,1,0") (ossStep)) (rule "methodCallWithinClass" (formula "22") (term "1")) (rule "methodBodyExpand" (formula "22") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "22")) + (rule "simplifyUpdate2" (formula "22") (term "1") (ossStep)) (rule "methodCallSuper" (formula "22") (term "1")) (rule "methodBodyExpand" (formula "22") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "22")) + (rule "simplifyUpdate2" (formula "22") (term "1") (ossStep)) (rule "methodCallSuper" (formula "22") (term "1")) (rule "methodBodyExpand" (formula "22") (term "1") (newnames "heapBefore__0,savedHeapBefore__0")) - (builtin "One Step Simplification" (formula "22")) + (rule "simplifyUpdate2" (formula "22") (term "1") (ossStep)) (rule "methodCallEmpty" (formula "22") (term "1")) (rule "blockEmpty" (formula "22") (term "1")) (rule "assignment_write_attribute_this" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "22") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "3,0,1,0") (ossStep)) (rule "assignment_write_attribute_this" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "22") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "3,0,1,0") (ossStep)) (rule "methodCallEmpty" (formula "22") (term "1")) (rule "methodCallEmpty" (formula "22") (term "1")) (rule "blockEmpty" (formula "22") (term "1")) (rule "methodCallReturnIgnoreResult" (formula "22") (term "1")) (rule "methodCallReturn" (formula "22") (term "1")) (rule "assignment" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,1,0") (ossStep)) (rule "methodCallEmpty" (formula "22") (term "1")) (rule "blockEmpty" (formula "22") (term "1")) (rule "assignment" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,1,0") (ossStep)) (rule "methodBodyExpand" (formula "22") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "22")) + (rule "simplifyUpdate2" (formula "22") (term "1") (ossStep)) (rule "methodCallSuper" (formula "22") (term "1")) (rule "methodBodyExpand" (formula "22") (term "1") (newnames "heapBefore__0,savedHeapBefore__0")) - (builtin "One Step Simplification" (formula "22")) + (rule "simplifyUpdate2" (formula "22") (term "1") (ossStep)) (rule "methodCallSuper" (formula "22") (term "1")) (rule "methodBodyExpand" (formula "22") (term "1") (newnames "heapBefore__1,savedHeapBefore__1")) - (builtin "One Step Simplification" (formula "22")) + (rule "simplifyUpdate2" (formula "22") (term "1") (ossStep)) (rule "methodCallEmpty" (formula "22") (term "1")) (rule "blockEmpty" (formula "22") (term "1")) (rule "assignment_write_attribute_this" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "22") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "3,0,1,0") (ossStep)) (rule "assignment_write_attribute_this" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "dropEffectlessStores" (formula "22") (term "0,1,0,0") (ossStep)) + (rule "dropEffectlessStores" (formula "22") (term "0,1,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "22") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "3,0,1,0") (ossStep)) (rule "methodCallEmpty" (formula "22") (term "1")) (rule "methodCallEmpty" (formula "22") (term "1")) (rule "blockEmpty" (formula "22") (term "1")) (rule "assignment_write_attribute" (formula "22") (term "1")) (branch "Normal Execution (e_1 != null)" - (builtin "One Step Simplification" (formula "23")) - (builtin "One Step Simplification" (formula "22") (ifInst "" (formula "19"))) - (rule "false_right" (formula "22")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "dropEffectlessStores" (formula "23") (term "0,1,0,0") (ossStep)) + (rule "dropEffectlessStores" (formula "23") (term "0,1,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "23") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "3,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1") (ossStep)) (rule "assignment" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "dropEffectlessStores" (formula "22") (term "0,1,0,0") (ossStep)) + (rule "dropEffectlessStores" (formula "22") (term "0,1,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,1,0") (ossStep)) (rule "tryCatchThrow" (formula "22") (term "1")) (rule "ifElseUnfold" (formula "22") (term "1") (inst "#boolv=x;")) (rule "variableDeclaration" (formula "22") (term "1") (newnames "x_4")) (rule "equality_comparison_simple" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "22") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "2,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,0,1,0") (ossStep)) (rule "replace_known_right" (formula "22") (term "0,0,1,0") (ifseqformula "19")) - (builtin "One Step Simplification" (formula "22")) + (rule "ifthenelse_false" (formula "22") (term "0,1,0") (ossStep)) (rule "ifElseSplit" (formula "22")) (branch "if x_4 true" - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (ossStep)) (rule "closeFalse" (formula "1")) ) (branch "if x_4 false" - (builtin "One Step Simplification" (formula "23")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "0") (ossStep)) + (rule "concrete_not_2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "ifElseSplit" (formula "22")) (branch "if e instanceof java.lang.Throwable true" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "instanceof_static_type" (formula "1") (term "2,0,1") (ossStep)) + (rule "ifthenelse_concrete4" (formula "1") (term "1") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_4" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "20") (ossStep)) + (rule "concrete_not_2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "variableDeclaration" (formula "22") (term "1") (newnames "e_4")) (rule "delete_unnecessary_cast" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "23")) - (builtin "One Step Simplification" (formula "1")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,1,0") (ossStep)) + (rule "instanceof_static_type" (formula "1") (term "0,1,1") (ossStep)) + (rule "eqClose" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_3" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "assignment" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) (rule "assignment" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,1,0") (ossStep)) (rule "methodCallEmpty" (formula "22") (term "1")) (rule "emptyModality" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "applyOnRigidFormula" (formula "22") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,0") (ossStep)) + (rule "eqClose" (formula "22") (term "0,0") (ossStep)) + (rule "concrete_impl_1" (formula "22") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (term "0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (term "1,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "0,0,1") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,0,1") (ossStep)) + (rule "eqClose" (formula "22") (term "0,0,1") (ossStep)) + (rule "concrete_not_1" (formula "22") (term "0,1") (ossStep)) + (rule "concrete_impl_2" (formula "22") (term "1") (ossStep)) + (rule "concrete_and_3" (formula "22") (ossStep)) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "22") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "2,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,0,1,0") (ossStep)) (rule "replace_known_right" (formula "22") (term "0,0,1,0") (ifseqformula "19")) - (builtin "One Step Simplification" (formula "22")) + (rule "ifthenelse_false" (formula "22") (term "0,1,0") (ossStep)) (rule "ifElseSplit" (formula "22")) (branch "if x_3 true" - (builtin "One Step Simplification" (formula "23")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (ossStep)) (rule "closeFalse" (formula "1")) ) (branch "if x_3 false" - (builtin "One Step Simplification" (formula "23")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "0") (ossStep)) + (rule "concrete_not_2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "elim_double_block" (formula "22") (term "1")) (rule "ifElseSplit" (formula "22")) (branch "if thrownExc instanceof java.lang.Throwable true" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "instanceof_static_type" (formula "1") (term "2,0,1") (ossStep)) + (rule "ifthenelse_concrete4" (formula "1") (term "1") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_4" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "20") (ossStep)) + (rule "concrete_not_2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "variableDeclaration" (formula "22") (term "1") (newnames "e_5")) (rule "delete_unnecessary_cast" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "23")) - (builtin "One Step Simplification" (formula "1")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,1,0") (ossStep)) + (rule "instanceof_static_type" (formula "1") (term "0,1,1") (ossStep)) + (rule "eqClose" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_3" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "assignment" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "22") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,1,0") (ossStep)) (rule "emptyModality" (formula "22") (term "1")) (rule "andRight" (formula "22")) (branch "Case 1" @@ -348,11 +956,19 @@ (rule "impRight" (formula "22")) (rule "andRight" (formula "23")) (branch "Case 1" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "20") (ossStep)) (rule "closeFalse" (formula "1")) ) (branch "Case 2" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "20") (ossStep)) (rule "closeFalse" (formula "1")) ) ) @@ -360,14 +976,50 @@ (rule "impRight" (formula "22")) (rule "orRight" (formula "23")) (rule "orRight" (formula "23")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) - (builtin "One Step Simplification" (formula "25")) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "20") (ossStep)) + (rule "concrete_not_2" (formula "1") (ossStep)) + (rule "simplifyUpdate2" (formula "25") (ossStep)) + (rule "applyOnRigidFormula" (formula "25") (ossStep)) + (rule "simplifyUpdate1" (formula "25") (term "1") (ossStep)) + (rule "applyOnRigidTerm" (formula "25") (term "0") (ossStep)) + (rule "applyOnPV" (formula "25") (term "0,0") (ossStep)) + (rule "instanceof_static_type" (formula "25") (term "0") (ossStep)) + (rule "eqClose" (formula "25") (ossStep)) (rule "closeTrue" (formula "25")) ) ) (branch "Case 2" - (builtin "One Step Simplification" (formula "22")) - (builtin "One Step Simplification" (formula "3")) + (rule "simplifyUpdate2" (formula "22") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (term "0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "22") (term "0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "22") (term "0,0,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,0,0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "2,0,0,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "22") (term "1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "22") (term "0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "2,0,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "22") (term "1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "22") (term "0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "22") (term "2,1,1,0,0") (ossStep)) + (rule "expandInInt" (formula "3") (ossStep)) (rule "true_left" (formula "3")) (rule "allRight" (formula "21") (inst "sk=f_0")) (rule "allRight" (formula "21") (inst "sk=o_0")) @@ -413,7 +1065,9 @@ (rule "polySimp_elimOne" (formula "15") (term "0,0")) (rule "pullOutSelect" (formula "22") (term "0") (inst "selectSK=f_0_0")) (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) + (rule "equalUnique" (formula "1") (term "0,1,0,0") (ossStep)) + (rule "concrete_not_2" (formula "1") (term "1,0,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0,0") (ossStep)) (rule "castDel" (formula "1") (term "1,0")) (rule "eqSymm" (formula "23")) (rule "eqSymm" (formula "1") (term "1,0,0")) @@ -423,13 +1077,17 @@ (rule "add_zero_left" (formula "3") (term "0")) (rule "pullOutSelect" (formula "1") (term "2,0") (inst "selectSK=f_0_1")) (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) + (rule "equalUnique" (formula "1") (term "0,1,0,0") (ossStep)) + (rule "concrete_not_2" (formula "1") (term "1,0,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0,0") (ossStep)) (rule "castDel" (formula "1") (term "1,0")) (rule "eqSymm" (formula "1") (term "1,0,0")) (rule "eqSymm" (formula "1") (term "0,0,0")) (rule "pullOutSelect" (formula "1") (term "2,0") (inst "selectSK=f_0_2")) (rule "simplifySelectOfStore" (formula "1")) - (builtin "One Step Simplification" (formula "1")) + (rule "equalUnique" (formula "1") (term "0,1,0,0") (ossStep)) + (rule "concrete_not_2" (formula "1") (term "1,0,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0,0") (ossStep)) (rule "castDel" (formula "1") (term "1,0")) (rule "eqSymm" (formula "1") (term "1,0,0")) (rule "eqSymm" (formula "1") (term "0,0,0")) @@ -438,10 +1096,16 @@ (rule "castDel" (formula "1") (term "1,0")) (rule "eqSymm" (formula "1") (term "0,0,0,0")) (rule "replace_known_right" (formula "1") (term "0,1,0,0,0") (ifseqformula "22")) - (builtin "One Step Simplification" (formula "1")) + (rule "concrete_not_2" (formula "1") (term "1,0,0,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0,0,0") (ossStep)) (rule "pullOutSelect" (formula "1") (term "2,0") (inst "selectSK=f_0_4")) (rule "simplifySelectOfAnon" (formula "1")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "26"))) + (rule "elementOfEmpty" (formula "1") (term "0,0,0,0") (ossStep)) + (rule "concrete_and_2" (formula "1") (term "0,0,0") (ossStep)) + (rule "concrete_or_2" (formula "1") (term "0,0") (ossStep)) + (rule "elementOfFreshLocs" (formula "1") (term "0,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0,0") (ifseqformula "26") (ossStep)) + (rule "ifthenelse_false" (formula "1") (term "0") (ossStep)) (rule "applyEqReverse" (formula "2") (term "2,0") (ifseqformula "1")) (rule "hideAuxiliaryEq" (formula "1")) (rule "commute_and" (formula "4") (term "0,0")) @@ -451,39 +1115,46 @@ (rule "arrayLengthNotNegative" (formula "6") (term "0")) (rule "cut_direct" (formula "25") (term "0,0")) (branch "CUT: o_0 = null TRUE" - (builtin "One Step Simplification" (formula "26")) + (rule "concrete_not_1" (formula "26") (term "0") (ossStep)) + (rule "concrete_and_2" (formula "26") (ossStep)) (rule "false_right" (formula "26")) (rule "applyEq" (formula "5") (term "0,1,0,0") (ifseqformula "1")) (rule "eqSymm" (formula "5") (term "1,0,0")) (rule "replace_known_right" (formula "5") (term "1,0,0") (ifseqformula "23")) - (builtin "One Step Simplification" (formula "5")) + (rule "concrete_and_4" (formula "5") (term "0,0") (ossStep)) + (rule "ifthenelse_false" (formula "5") (term "0") (ossStep)) (rule "applyEqReverse" (formula "26") (term "1") (ifseqformula "5")) (rule "hideAuxiliaryEq" (formula "5")) (rule "applyEqRigid" (formula "25") (term "1,0") (ifseqformula "1")) (rule "applyEqRigid" (formula "3") (term "0,1,0,0") (ifseqformula "1")) (rule "eqSymm" (formula "3") (term "1,0,0")) (rule "replace_known_right" (formula "3") (term "1,0,0") (ifseqformula "22")) - (builtin "One Step Simplification" (formula "3")) + (rule "concrete_and_4" (formula "3") (term "0,0") (ossStep)) + (rule "ifthenelse_false" (formula "3") (term "0") (ossStep)) (rule "applyEqReverse" (formula "4") (term "2,0") (ifseqformula "3")) (rule "hideAuxiliaryEq" (formula "3")) (rule "applyEqRigid" (formula "3") (term "0,1,0,0") (ifseqformula "1")) (rule "eqSymm" (formula "3") (term "1,0,0")) (rule "replace_known_right" (formula "3") (term "1,0,0") (ifseqformula "21")) - (builtin "One Step Simplification" (formula "3")) + (rule "concrete_and_4" (formula "3") (term "0,0") (ossStep)) + (rule "ifthenelse_false" (formula "3") (term "0") (ossStep)) (rule "applyEqReverse" (formula "24") (term "1") (ifseqformula "3")) (rule "hideAuxiliaryEq" (formula "3")) (rule "applyEq" (formula "2") (term "1,2,0") (ifseqformula "1")) (rule "applyEqRigid" (formula "2") (term "0,1,0,0") (ifseqformula "1")) (rule "eqSymm" (formula "2") (term "1,0,0")) (rule "replace_known_right" (formula "2") (term "1,0,0") (ifseqformula "20")) - (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "23"))) + (rule "concrete_and_4" (formula "2") (term "0,0") (ossStep)) + (rule "ifthenelse_false" (formula "2") (term "0") (ossStep)) + (rule "replace_known_right" (formula "2") (ifseqformula "23") (ossStep)) (rule "closeFalse" (formula "2")) ) (branch "CUT: o_0 = null FALSE" - (builtin "One Step Simplification" (formula "26")) + (rule "concrete_not_2" (formula "26") (term "0") (ossStep)) + (rule "concrete_and_1" (formula "26") (ossStep)) (rule "notRight" (formula "26")) (rule "arrayLengthIsAnInt" (formula "8") (term "0")) - (builtin "One Step Simplification" (formula "8")) + (rule "expandInInt" (formula "8") (ossStep)) (rule "true_left" (formula "8")) (rule "ifthenelse_split" (formula "2") (term "0")) (branch "f_0 = java.lang.Object:: & o_0 = e_3 TRUE" @@ -491,13 +1162,14 @@ (rule "applyEqReverse" (formula "5") (term "2,0") (ifseqformula "4")) (rule "hideAuxiliaryEq" (formula "4")) (rule "replace_known_left" (formula "6") (term "1,0,0") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "6")) + (rule "concrete_and_3" (formula "6") (term "0,0") (ossStep)) (rule "replace_known_left" (formula "5") (term "1,0,0") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "5")) + (rule "concrete_and_3" (formula "5") (term "0,0") (ossStep)) (rule "replace_known_left" (formula "4") (term "1,0,0") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "4")) + (rule "concrete_and_3" (formula "4") (term "0,0") (ossStep)) (rule "applyEqRigid" (formula "6") (term "0,0,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "6")) + (rule "equalUnique" (formula "6") (term "0,0") (ossStep)) + (rule "ifthenelse_false" (formula "6") (term "0") (ossStep)) (rule "applyEqReverse" (formula "28") (term "1") (ifseqformula "6")) (rule "hideAuxiliaryEq" (formula "6")) (rule "applyEq" (formula "27") (term "1,0") (ifseqformula "3")) @@ -511,21 +1183,23 @@ (branch "f_0 = java.lang.Throwable::$cause & o_0 = e_3 TRUE" (rule "andLeft" (formula "2")) (rule "applyEqReverse" (formula "5") (term "2,0") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "5") (ifInst "" (formula "3"))) + (rule "replace_known_left" (formula "5") (term "1,0,0") (ifseqformula "3") (ossStep)) + (rule "ifthenelse_same_branches" (formula "5") (term "0") (ossStep)) (rule "applyEqReverse" (formula "6") (term "2,0") (ifseqformula "5")) (rule "hideAuxiliaryEq" (formula "4")) (rule "hideAuxiliaryEq" (formula "4")) (rule "replace_known_left" (formula "4") (term "1,0,0") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "4")) + (rule "concrete_and_3" (formula "4") (term "0,0") (ossStep)) (rule "replace_known_left" (formula "20") (term "1") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "20")) + (rule "concrete_and_3" (formula "20") (ossStep)) (rule "applyEq" (formula "26") (term "0") (ifseqformula "3")) (rule "applyEq" (formula "4") (term "0,0,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "4")) + (rule "equalUnique" (formula "4") (term "0,0") (ossStep)) + (rule "ifthenelse_false" (formula "4") (term "0") (ossStep)) (rule "applyEqReverse" (formula "26") (term "1") (ifseqformula "4")) (rule "hideAuxiliaryEq" (formula "4")) (rule "applyEq" (formula "19") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "19")) + (rule "equalUnique" (formula "19") (ossStep)) (rule "false_right" (formula "19")) (rule "applyEq" (formula "1") (term "1,0") (ifseqformula "3")) (rule "close" (formula "19") (ifseqformula "1")) @@ -539,22 +1213,23 @@ (rule "applyEqReverse" (formula "5") (term "2,0") (ifseqformula "4")) (rule "hideAuxiliaryEq" (formula "4")) (rule "replace_known_left" (formula "4") (term "1,0,0") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "4")) + (rule "concrete_and_3" (formula "4") (term "0,0") (ossStep)) (rule "replace_known_left" (formula "20") (term "1") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "20")) + (rule "concrete_and_3" (formula "20") (ossStep)) (rule "replace_known_left" (formula "21") (term "1") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "21")) + (rule "concrete_and_3" (formula "21") (ossStep)) (rule "applyEqRigid" (formula "20") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "20")) + (rule "equalUnique" (formula "20") (ossStep)) (rule "false_right" (formula "20")) (rule "applyEqRigid" (formula "20") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "20")) + (rule "equalUnique" (formula "20") (ossStep)) (rule "false_right" (formula "20")) (rule "applyEqRigid" (formula "26") (term "2,0") (ifseqformula "2")) (rule "narrowSelectType" (formula "26") (term "0") (ifseqformula "8")) (rule "eqSymm" (formula "26")) (rule "applyEq" (formula "4") (term "0,0,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "4")) + (rule "equalUnique" (formula "4") (term "0,0") (ossStep)) + (rule "ifthenelse_false" (formula "4") (term "0") (ossStep)) (rule "applyEqReverse" (formula "26") (term "0") (ifseqformula "4")) (rule "hideAuxiliaryEq" (formula "4")) (rule "eqSymm" (formula "25")) @@ -570,21 +1245,21 @@ (rule "applyEqReverse" (formula "29") (term "1") (ifseqformula "4")) (rule "hideAuxiliaryEq" (formula "4")) (rule "replace_known_left" (formula "19") (term "1") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "19")) + (rule "concrete_and_3" (formula "19") (ossStep)) (rule "replace_known_left" (formula "20") (term "1") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "20")) + (rule "concrete_and_3" (formula "20") (ossStep)) (rule "replace_known_left" (formula "21") (term "1") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "21")) + (rule "concrete_and_3" (formula "21") (ossStep)) (rule "applyEq" (formula "28") (term "2,0") (ifseqformula "2")) (rule "narrowSelectType" (formula "28") (term "0") (ifseqformula "7")) (rule "applyEq" (formula "19") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "19")) + (rule "equalUnique" (formula "19") (ossStep)) (rule "false_right" (formula "19")) (rule "applyEq" (formula "19") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "19")) + (rule "equalUnique" (formula "19") (ossStep)) (rule "false_right" (formula "19")) (rule "applyEq" (formula "19") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "19")) + (rule "equalUnique" (formula "19") (ossStep)) (rule "false_right" (formula "19")) (rule "applyEq" (formula "1") (term "1,0") (ifseqformula "3")) (rule "close" (formula "19") (ifseqformula "1")) @@ -599,52 +1274,150 @@ ) ) (branch "if thrownExc instanceof java.lang.Throwable false" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "ifthenelse_concrete3" (formula "1") (term "1") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1,1") (ossStep)) + (rule "instanceof_static_type" (formula "1") (term "0,0,1,1") (ossStep)) + (rule "eqClose" (formula "1") (term "0,1,1") (ossStep)) + (rule "concrete_not_1" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_4" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "20") (ossStep)) (rule "closeFalse" (formula "1")) ) ) ) (branch "if e instanceof java.lang.Throwable false" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "ifthenelse_concrete3" (formula "1") (term "1") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1,1") (ossStep)) + (rule "instanceof_static_type" (formula "1") (term "0,0,1,1") (ossStep)) + (rule "eqClose" (formula "1") (term "0,1,1") (ossStep)) + (rule "concrete_not_1" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_4" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "20") (ossStep)) (rule "closeFalse" (formula "1")) ) ) ) (branch "Null Reference (e_1 = null)" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "20") (ossStep)) (rule "closeFalse" (formula "1")) ) ) (branch "if x_1 false" - (builtin "One Step Simplification" (formula "16")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "16") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "ifthenelse_concrete3" (formula "1") (term "0") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "1,0") (ossStep)) + (rule "concrete_or_4" (formula "1") (term "0") (ossStep)) (rule "notLeft" (formula "1")) (rule "ifElseUnfold" (formula "16") (term "1") (inst "#boolv=x;")) (rule "variableDeclaration" (formula "16") (term "1") (newnames "x_3")) (rule "assignment_array2" (formula "16") (term "1")) (branch "Normal Execution (_r != null)" - (builtin "One Step Simplification" (formula "17")) - (builtin "One Step Simplification" (formula "16") (ifInst "" (formula "15")) (ifInst "" (formula "13"))) + (rule "sequentialToParallel2" (formula "17") (ossStep)) + (rule "simplifyUpdate3" (formula "17") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "17") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "17") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "17") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "17") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "17") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "17") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "17") (term "2,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "17") (term "2,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "17") (term "0,2,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "16") (ossStep)) + (rule "applyOnRigidFormula" (formula "16") (ossStep)) + (rule "simplifyUpdate2" (formula "16") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "16") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "16") (term "0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "16") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "16") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "16") (term "1,0,0") (ossStep)) + (rule "replace_known_right" (formula "16") (term "0,0") (ifseqformula "15") (ossStep)) + (rule "concrete_or_2" (formula "16") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "16") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "16") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "16") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "16") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "16") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "16") (term "0,0,0") (ossStep)) + (rule "replace_known_right" (formula "16") (term "0") (ifseqformula "13") (ossStep)) + (rule "concrete_or_2" (formula "16") (ossStep)) + (rule "applyOnRigidFormula" (formula "16") (ossStep)) + (rule "applyOnPV" (formula "16") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "16") (term "1") (ossStep)) (rule "pullOutSelect" (formula "17") (term "0,1,0") (inst "selectSK=arr_0")) (rule "simplifySelectOfAnon" (formula "1")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "16")) (ifInst "" (formula "3"))) + (rule "elementOfEmpty" (formula "1") (term "0,0,0,0") (ossStep)) + (rule "concrete_and_2" (formula "1") (term "0,0,0") (ossStep)) + (rule "concrete_or_2" (formula "1") (term "0,0") (ossStep)) + (rule "elementOfFreshLocs" (formula "1") (term "0,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0,0,0,0") (ifseqformula "16") (ossStep)) + (rule "replace_known_left" (formula "1") (term "0,1,0,0") (ifseqformula "3") (ossStep)) + (rule "concrete_not_2" (formula "1") (term "0,0,0") (ossStep)) + (rule "concrete_and_1" (formula "1") (term "0,0") (ossStep)) + (rule "concrete_not_1" (formula "1") (term "0,0") (ossStep)) + (rule "ifthenelse_false" (formula "1") (term "0") (ossStep)) (rule "applyEqReverse" (formula "18") (term "0,1,0") (ifseqformula "1")) (rule "hideAuxiliaryEq" (formula "1")) (rule "ifElseSplit" (formula "17")) (branch "if x_3 true" - (builtin "One Step Simplification" (formula "18")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "18") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) (rule "ifUnfold" (formula "18") (term "1") (inst "#boolv=x;")) (rule "variableDeclaration" (formula "18") (term "1") (newnames "x_4")) (rule "greater_than_comparison_simple" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) + (rule "sequentialToParallel2" (formula "18") (ossStep)) + (rule "simplifyUpdate3" (formula "18") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "18") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "18") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "18") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "18") (term "2,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "18") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "18") (term "0,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "18") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "18") (term "1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "18") (term "1,0,0,1,0") (ossStep)) (rule "ifSplit" (formula "18")) (branch "if x_4 true" - (builtin "One Step Simplification" (formula "19")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "ifthenelse_concrete3" (formula "1") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "1") (ossStep)) + (rule "concrete_or_4" (formula "1") (ossStep)) (rule "elim_double_block_2" (formula "19") (term "1")) (rule "assignmentSubtractionInt" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19")) + (rule "sequentialToParallel2" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (ossStep)) + (rule "simplifyUpdate3" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0") (ossStep)) (rule "translateJavaSubInt" (formula "19") (term "0,1,0")) (rule "polySimp_elimSub" (formula "19") (term "0,1,0")) (rule "blockEmpty" (formula "19") (term "1")) @@ -654,16 +1427,197 @@ (rule "variableDeclaration" (formula "19") (term "1") (newnames "x_5")) (rule "remove_parentheses_right" (formula "19") (term "1")) (rule "assignmentAdditionInt" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19")) + (rule "sequentialToParallel2" (formula "19") (ossStep)) + (rule "simplifyUpdate3" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0") (ossStep)) (rule "translateJavaAddInt" (formula "19") (term "0,1,0")) (rule "polySimp_addComm0" (formula "19") (term "0,1,0")) (rule "widening_identity_cast_5" (formula "19") (term "1")) (rule "assignment" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19")) + (rule "sequentialToParallel2" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (ossStep)) + (rule "simplifyUpdate3" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,0") (ossStep)) (rule "tryEmpty" (formula "19") (term "1")) (rule "methodCallEmpty" (formula "19") (term "1")) (rule "emptyModality" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19") (ifInst "" (formula "11"))) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "19") (term "0,0") (ossStep)) + (rule "concrete_impl_2" (formula "19") (term "0") (ossStep)) + (rule "concrete_and_1" (formula "19") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "19") (term "0,0") (ossStep)) + (rule "concrete_not_2" (formula "19") (term "0") (ossStep)) + (rule "concrete_impl_1" (formula "19") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,0,0,0,0,0") (ossStep)) + (rule "replace_known_left" (formula "19") (term "1,0,0,0,0,0") (ifseqformula "11") (ossStep)) + (rule "concrete_and_3" (formula "19") (term "0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,0,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,0,1,0,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,3,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,3,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,0,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,0,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,0,1") (ossStep)) (rule "andRight" (formula "19")) (branch "Case 1" (rule "andRight" (formula "19")) @@ -736,7 +1690,7 @@ (rule "polySimp_mulLiterals" (formula "3") (term "0")) (rule "polySimp_elimOne" (formula "3") (term "0")) (rule "replace_known_left" (formula "15") (term "0") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "15")) + (rule "concrete_impl_1" (formula "15") (ossStep)) (rule "inEqSimp_sepNegMonomial0" (formula "13")) (rule "polySimp_mulLiterals" (formula "13") (term "0")) (rule "polySimp_elimOne" (formula "13") (term "0")) @@ -747,11 +1701,11 @@ (rule "times_zero_1" (formula "17") (term "1,0,0")) (rule "add_zero_right" (formula "17") (term "0,0")) (rule "qeq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) + (rule "concrete_and_2" (formula "17") (ossStep)) (rule "false_right" (formula "17")) (rule "inEqSimp_contradInEq0" (formula "11") (ifseqformula "2")) (rule "qeq_literals" (formula "11") (term "0")) - (builtin "One Step Simplification" (formula "11")) + (rule "concrete_and_2" (formula "11") (ossStep)) (rule "closeFalse" (formula "11")) ) (branch "Case 2" @@ -811,7 +1765,7 @@ (rule "mul_literals" (formula "15") (term "0,1,0")) (rule "polySimp_elimOne" (formula "15") (term "1,1,0")) (rule "replace_known_left" (formula "15") (term "0") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "15")) + (rule "concrete_impl_1" (formula "15") (ossStep)) (rule "inEqSimp_sepNegMonomial0" (formula "16") (term "0")) (rule "polySimp_mulLiterals" (formula "16") (term "0,0")) (rule "polySimp_elimOne" (formula "16") (term "0,0")) @@ -828,7 +1782,7 @@ (rule "times_zero_1" (formula "17") (term "1,0,0")) (rule "add_zero_right" (formula "17") (term "0,0")) (rule "qeq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) + (rule "concrete_and_2" (formula "17") (ossStep)) (rule "false_right" (formula "17")) (rule "inEqSimp_contradInEq0" (formula "1") (ifseqformula "3")) (rule "andLeft" (formula "1")) @@ -848,7 +1802,7 @@ ) (branch "Case 2" (rule "replace_known_right" (formula "13") (term "1") (ifseqformula "19")) - (builtin "One Step Simplification" (formula "13")) + (rule "concrete_impl_3" (formula "13") (ossStep)) (rule "notLeft" (formula "13")) (rule "inEqSimp_leqRight" (formula "15")) (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) @@ -909,7 +1863,7 @@ (rule "times_zero_1" (formula "16") (term "1,0,0")) (rule "add_zero_right" (formula "16") (term "0,0")) (rule "qeq_literals" (formula "16") (term "0")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_and_2" (formula "16") (ossStep)) (rule "false_right" (formula "16")) (rule "inEqSimp_contradInEq0" (formula "1") (ifseqformula "3")) (rule "andLeft" (formula "1")) @@ -930,12 +1884,21 @@ (branch "Case 2" (rule "impRight" (formula "19")) (rule "Contract_axiom_for_gcd_in_ParallelGcd" (formula "20") (term "1") (inst "i=i_1") (userinteraction)) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "13")) (ifInst "" (formula "5")) (ifInst "" (formula "2"))) + (rule "replace_known_left" (formula "1") (term "1,0,0") (ifseqformula "13") (ossStep)) + (rule "replace_known_left" (formula "1") (term "1,1,0") (ifseqformula "5") (ossStep)) + (rule "replace_known_left" (formula "1") (term "0,1,1") (ifseqformula "2") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "1,0") (ossStep)) + (rule "expandInInt" (formula "1") (term "1,0,0,0,1,0,0,0,1") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0,0,0,1,0,0,0,1") (ossStep)) + (rule "concrete_impl_1" (formula "1") (term "1,1") (ossStep)) (rule "wellFormedAnon" (formula "1") (term "1,0")) (rule "eqSymm" (formula "1") (term "1,1")) (rule "eqSymm" (formula "1") (term "1,1,0,1")) (rule "replace_known_left" (formula "1") (term "1,1,0") (ifseqformula "10")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "5"))) + (rule "replace_known_left" (formula "1") (term "0,1,0") (ifseqformula "5") (ossStep)) + (rule "concrete_and_1" (formula "1") (term "1,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0") (ossStep)) (rule "polySimp_pullOutFactor0b" (formula "21") (term "2,0")) (rule "add_literals" (formula "21") (term "1,1,2,0")) (rule "polySimp_elimSub" (formula "1") (term "3,0,1,1,0,1")) @@ -944,7 +1907,8 @@ (rule "polySimp_pullOutFactor0b" (formula "1") (term "2,0,1,1")) (rule "add_literals" (formula "1") (term "1,1,2,0,1,1")) (rule "replace_known_right" (formula "1") (term "1,1") (ifseqformula "21")) - (builtin "One Step Simplification" (formula "1")) + (rule "concrete_and_4" (formula "1") (term "1") (ossStep)) + (rule "concrete_impl_3" (formula "1") (ossStep)) (rule "notLeft" (formula "1")) (rule "inEqSimp_leqRight" (formula "17")) (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) @@ -1012,7 +1976,7 @@ (rule "polySimp_mulLiterals" (formula "16") (term "1,1,0")) (rule "polySimp_elimOne" (formula "16") (term "1,1,0")) (rule "replace_known_left" (formula "16") (term "0") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_impl_1" (formula "16") (ossStep)) (rule "applyEq" (formula "20") (term "1") (ifseqformula "16")) (rule "inEqSimp_sepNegMonomial0" (formula "13")) (rule "polySimp_mulLiterals" (formula "13") (term "0")) @@ -1033,7 +1997,7 @@ (rule "times_zero_1" (formula "18") (term "1,0,0")) (rule "add_zero_right" (formula "18") (term "0,0")) (rule "qeq_literals" (formula "18") (term "0")) - (builtin "One Step Simplification" (formula "18")) + (rule "concrete_and_2" (formula "18") (ossStep)) (rule "false_right" (formula "18")) (rule "inEqSimp_contradInEq1" (formula "4") (ifseqformula "1")) (rule "andLeft" (formula "4")) @@ -1054,12 +2018,21 @@ (branch "Case 2" (rule "impRight" (formula "19")) (rule "Contract_axiom_for_gcd_in_ParallelGcd" (formula "20") (term "1") (inst "i=i_1") (userinteraction)) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "13")) (ifInst "" (formula "5")) (ifInst "" (formula "2"))) + (rule "replace_known_left" (formula "1") (term "1,0,0") (ifseqformula "13") (ossStep)) + (rule "replace_known_left" (formula "1") (term "1,1,0") (ifseqformula "5") (ossStep)) + (rule "replace_known_left" (formula "1") (term "0,1,0,1") (ifseqformula "2") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "1,0") (ossStep)) + (rule "expandInInt" (formula "1") (term "1,0,0,0,1,0,0,0,1") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0,0,0,1,0,0,0,1") (ossStep)) + (rule "concrete_impl_1" (formula "1") (term "1,0,1") (ossStep)) (rule "wellFormedAnon" (formula "1") (term "1,0")) (rule "eqSymm" (formula "1") (term "1,1,1")) (rule "eqSymm" (formula "1") (term "1,0,1")) (rule "replace_known_left" (formula "1") (term "1,1,0") (ifseqformula "10")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "5"))) + (rule "replace_known_left" (formula "1") (term "0,1,0") (ifseqformula "5") (ossStep)) + (rule "concrete_and_1" (formula "1") (term "1,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0") (ossStep)) (rule "polySimp_homoEq" (formula "1") (term "0,1,0,0,1")) (rule "polySimp_elimSub" (formula "1") (term "2,0,1,1,1")) (rule "polySimp_elimSub" (formula "1") (term "3,0,1,0,1")) @@ -1093,7 +2066,9 @@ (rule "polySimp_addComm0" (formula "2") (term "0,3,0,1,0,1")) (rule "polySimp_pullOutFactor3b" (formula "2") (term "3,0,1,0,1")) (rule "replace_known_right" (formula "2") (term "1,0,1") (ifseqformula "20")) - (builtin "One Step Simplification" (formula "2")) + (rule "concrete_and_4" (formula "2") (term "0,1") (ossStep)) + (rule "concrete_and_2" (formula "2") (term "1") (ossStep)) + (rule "concrete_impl_3" (formula "2") (ossStep)) (rule "notLeft" (formula "2")) (rule "inEqSimp_ltToLeq" (formula "12")) (rule "add_zero_right" (formula "12") (term "0")) @@ -1158,7 +2133,7 @@ (rule "polySimp_mulLiterals" (formula "4") (term "0")) (rule "polySimp_elimOne" (formula "4") (term "0")) (rule "replace_known_left" (formula "16") (term "0") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_impl_1" (formula "16") (ossStep)) (rule "applyEq" (formula "20") (term "1") (ifseqformula "16")) (rule "inEqSimp_sepNegMonomial0" (formula "3")) (rule "polySimp_mulLiterals" (formula "3") (term "0")) @@ -1172,7 +2147,7 @@ (rule "times_zero_1" (formula "18") (term "1,0,0")) (rule "add_zero_right" (formula "18") (term "0,0")) (rule "qeq_literals" (formula "18") (term "0")) - (builtin "One Step Simplification" (formula "18")) + (rule "concrete_and_2" (formula "18") (ossStep)) (rule "false_right" (formula "18")) (rule "inEqSimp_contradInEq0" (formula "1") (ifseqformula "4")) (rule "andLeft" (formula "1")) @@ -1251,7 +2226,7 @@ (rule "polySimp_mulLiterals" (formula "2") (term "0")) (rule "polySimp_elimOne" (formula "2") (term "0")) (rule "replace_known_left" (formula "14") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "14")) + (rule "concrete_impl_1" (formula "14") (ossStep)) (rule "inEqSimp_contradEq3" (formula "16") (ifseqformula "2")) (rule "polySimp_mulComm0" (formula "16") (term "1,0,0")) (rule "polySimp_pullOutFactor1b" (formula "16") (term "0,0")) @@ -1259,7 +2234,7 @@ (rule "times_zero_1" (formula "16") (term "1,0,0")) (rule "add_zero_right" (formula "16") (term "0,0")) (rule "qeq_literals" (formula "16") (term "0")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_and_2" (formula "16") (ossStep)) (rule "false_right" (formula "16")) (rule "inEqSimp_contradInEq0" (formula "15") (term "0") (ifseqformula "2")) (rule "inEqSimp_homoInEq1" (formula "15") (term "0,0")) @@ -1274,13 +2249,19 @@ (rule "times_zero_1" (formula "15") (term "1,0,0,0")) (rule "add_zero_right" (formula "15") (term "0,0,0")) (rule "leq_literals" (formula "15") (term "0,0")) - (builtin "One Step Simplification" (formula "15")) + (rule "concrete_and_2" (formula "15") (term "0") (ossStep)) + (rule "concrete_impl_2" (formula "15") (ossStep)) (rule "true_left" (formula "15")) (rule "pullOutSelect" (formula "17") (term "0") (inst "selectSK=f_0_0")) (rule "simplifySelectOfAnon" (formula "1")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) + (rule "elementOfEmpty" (formula "1") (term "0,0,0,0") (ossStep)) + (rule "concrete_and_2" (formula "1") (term "0,0,0") (ossStep)) + (rule "concrete_or_2" (formula "1") (term "0,0") (ossStep)) + (rule "elementOfFreshLocs" (formula "1") (term "0,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0,0") (ifseqformula "17") (ossStep)) + (rule "ifthenelse_false" (formula "1") (term "0") (ossStep)) (rule "applyEqReverse" (formula "18") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "18")) + (rule "eqClose" (formula "18") (ossStep)) (rule "closeTrue" (formula "18")) ) ) @@ -1335,7 +2316,7 @@ (rule "add_literals" (formula "18") (term "1,0,1")) (rule "times_zero_1" (formula "18") (term "0,1")) (rule "leq_literals" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) + (rule "concrete_and_3" (formula "18") (ossStep)) (rule "inEqSimp_leqRight" (formula "18")) (rule "add_zero_right" (formula "1") (term "0")) (rule "polySimp_rightDist" (formula "1") (term "1,0")) @@ -1372,7 +2353,7 @@ (rule "polySimp_mulLiterals" (formula "3") (term "0")) (rule "polySimp_elimOne" (formula "3") (term "0")) (rule "replace_known_left" (formula "15") (term "0") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "15")) + (rule "concrete_impl_1" (formula "15") (ossStep)) (rule "inEqSimp_sepNegMonomial0" (formula "13")) (rule "polySimp_mulLiterals" (formula "13") (term "0")) (rule "polySimp_elimOne" (formula "13") (term "0")) @@ -1389,7 +2370,7 @@ (rule "times_zero_1" (formula "17") (term "1,0,0")) (rule "add_zero_right" (formula "17") (term "0,0")) (rule "qeq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) + (rule "concrete_and_2" (formula "17") (ossStep)) (rule "false_right" (formula "17")) (rule "inEqSimp_contradInEq0" (formula "2") (ifseqformula "1")) (rule "andLeft" (formula "2")) @@ -1403,8 +2384,16 @@ ) ) (branch "if x_4 false" - (builtin "One Step Simplification" (formula "19")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "19") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "ifthenelse_concrete3" (formula "1") (term "0") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "1,0") (ossStep)) + (rule "concrete_or_4" (formula "1") (term "0") (ossStep)) (rule "notLeft" (formula "1")) (rule "blockEmpty" (formula "19") (term "1")) (rule "postincrement" (formula "19") (term "1")) @@ -1413,16 +2402,201 @@ (rule "variableDeclaration" (formula "19") (term "1") (newnames "x_5")) (rule "remove_parentheses_right" (formula "19") (term "1")) (rule "assignmentAdditionInt" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19")) + (rule "sequentialToParallel2" (formula "19") (ossStep)) + (rule "simplifyUpdate3" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0") (ossStep)) (rule "translateJavaAddInt" (formula "19") (term "0,1,0")) (rule "polySimp_addComm0" (formula "19") (term "0,1,0")) (rule "widening_identity_cast_5" (formula "19") (term "1")) (rule "assignment" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19")) + (rule "sequentialToParallel2" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (ossStep)) + (rule "simplifyUpdate3" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,0") (ossStep)) (rule "tryEmpty" (formula "19") (term "1")) (rule "methodCallEmpty" (formula "19") (term "1")) (rule "emptyModality" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19") (ifInst "" (formula "9")) (ifInst "" (formula "10")) (ifInst "" (formula "11"))) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "19") (term "0,0") (ossStep)) + (rule "concrete_impl_2" (formula "19") (term "0") (ossStep)) + (rule "concrete_and_1" (formula "19") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "19") (term "0,0") (ossStep)) + (rule "concrete_not_2" (formula "19") (term "0") (ossStep)) + (rule "concrete_impl_1" (formula "19") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,0,0,0,0,0,0") (ossStep)) + (rule "replace_known_left" (formula "19") (term "1,0,0,0,0,0,0") (ifseqformula "9") (ossStep)) + (rule "concrete_and_3" (formula "19") (term "0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,0,0,0,0,0") (ossStep)) + (rule "replace_known_left" (formula "19") (term "1,0,0,0,0,0") (ifseqformula "10") (ossStep)) + (rule "concrete_and_3" (formula "19") (term "0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,0,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,0,1,0,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,0,0,0,0") (ossStep)) + (rule "replace_known_left" (formula "19") (term "1,0,0,0,0") (ifseqformula "11") (ossStep)) + (rule "concrete_and_3" (formula "19") (term "0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,3,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,3,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,0,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,0,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,0,1") (ossStep)) (rule "andRight" (formula "19")) (branch "Case 1" (rule "andRight" (formula "19")) @@ -1495,7 +2669,7 @@ (rule "polySimp_elimOne" (formula "12") (term "0")) (rule "inEqSimp_strengthen1" (formula "2") (ifseqformula "17")) (rule "replace_known_left" (formula "16") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_impl_1" (formula "16") (ossStep)) (rule "inEqSimp_contradEq7" (formula "17") (ifseqformula "2")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,0")) (rule "polySimp_pullOutFactor1b" (formula "17") (term "0,0")) @@ -1503,17 +2677,17 @@ (rule "times_zero_1" (formula "17") (term "1,0,0")) (rule "add_zero_right" (formula "17") (term "0,0")) (rule "leq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) + (rule "concrete_and_2" (formula "17") (ossStep)) (rule "false_right" (formula "17")) (rule "inEqSimp_contradInEq1" (formula "3") (ifseqformula "11")) (rule "qeq_literals" (formula "3") (term "0")) - (builtin "One Step Simplification" (formula "3")) + (rule "concrete_and_2" (formula "3") (ossStep)) (rule "closeFalse" (formula "3")) ) (branch "Case 2" (rule "impRight" (formula "19")) (rule "replace_known_left" (formula "13") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "13")) + (rule "concrete_impl_1" (formula "13") (ossStep)) (rule "inEqSimp_gtRight" (formula "15")) (rule "polySimp_mulComm0" (formula "1") (term "0,0")) (rule "polySimp_addComm0" (formula "1") (term "0")) @@ -1547,7 +2721,7 @@ (branch "Case 2" (rule "impRight" (formula "19")) (rule "replace_known_left" (formula "14") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "14")) + (rule "concrete_impl_1" (formula "14") (ossStep)) (rule "inEqSimp_gtRight" (formula "15")) (rule "polySimp_mulComm0" (formula "1") (term "0,0")) (rule "polySimp_addComm0" (formula "1") (term "0")) @@ -1640,7 +2814,7 @@ (rule "polySimp_elimOne" (formula "7") (term "0")) (rule "inEqSimp_strengthen1" (formula "2") (ifseqformula "16")) (rule "replace_known_left" (formula "15") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "15")) + (rule "concrete_impl_1" (formula "15") (ossStep)) (rule "inEqSimp_contradEq7" (formula "16") (ifseqformula "2")) (rule "polySimp_mulComm0" (formula "16") (term "1,0,0")) (rule "polySimp_pullOutFactor1b" (formula "16") (term "0,0")) @@ -1648,7 +2822,7 @@ (rule "times_zero_1" (formula "16") (term "1,0,0")) (rule "add_zero_right" (formula "16") (term "0,0")) (rule "leq_literals" (formula "16") (term "0")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_and_2" (formula "16") (ossStep)) (rule "false_right" (formula "16")) (rule "inEqSimp_contradInEq1" (formula "14") (term "0") (ifseqformula "2")) (rule "inEqSimp_homoInEq1" (formula "14") (term "0,0")) @@ -1663,13 +2837,19 @@ (rule "times_zero_1" (formula "14") (term "1,0,0,0")) (rule "add_zero_right" (formula "14") (term "0,0,0")) (rule "leq_literals" (formula "14") (term "0,0")) - (builtin "One Step Simplification" (formula "14")) + (rule "concrete_and_2" (formula "14") (term "0") (ossStep)) + (rule "concrete_impl_2" (formula "14") (ossStep)) (rule "true_left" (formula "14")) (rule "pullOutSelect" (formula "17") (term "0") (inst "selectSK=f_0_0")) (rule "simplifySelectOfAnon" (formula "1")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) + (rule "elementOfEmpty" (formula "1") (term "0,0,0,0") (ossStep)) + (rule "concrete_and_2" (formula "1") (term "0,0,0") (ossStep)) + (rule "concrete_or_2" (formula "1") (term "0,0") (ossStep)) + (rule "elementOfFreshLocs" (formula "1") (term "0,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0,0") (ifseqformula "17") (ossStep)) + (rule "ifthenelse_false" (formula "1") (term "0") (ossStep)) (rule "applyEqReverse" (formula "18") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "18")) + (rule "eqClose" (formula "18") (ossStep)) (rule "closeTrue" (formula "18")) ) ) @@ -1724,7 +2904,7 @@ (rule "add_literals" (formula "18") (term "1,0,1")) (rule "times_zero_1" (formula "18") (term "0,1")) (rule "leq_literals" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) + (rule "concrete_and_3" (formula "18") (ossStep)) (rule "inEqSimp_leqRight" (formula "18")) (rule "add_zero_right" (formula "1") (term "0")) (rule "polySimp_rightDist" (formula "1") (term "1,0")) @@ -1771,7 +2951,7 @@ (rule "polySimp_elimOne" (formula "1") (term "0")) (rule "inEqSimp_strengthen1" (formula "2") (ifseqformula "17")) (rule "replace_known_left" (formula "16") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_impl_1" (formula "16") (ossStep)) (rule "inEqSimp_contradEq7" (formula "17") (ifseqformula "2")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,0")) (rule "polySimp_pullOutFactor1b" (formula "17") (term "0,0")) @@ -1779,7 +2959,7 @@ (rule "times_zero_1" (formula "17") (term "1,0,0")) (rule "add_zero_right" (formula "17") (term "0,0")) (rule "leq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) + (rule "concrete_and_2" (formula "17") (ossStep)) (rule "false_right" (formula "17")) (rule "inEqSimp_contradInEq0" (formula "3") (ifseqformula "1")) (rule "andLeft" (formula "3")) @@ -1794,21 +2974,50 @@ ) ) (branch "if x_3 false" - (builtin "One Step Simplification" (formula "18")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "18") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) (rule "notLeft" (formula "1")) (rule "elim_double_block_2" (formula "18") (term "1")) (rule "ifUnfold" (formula "18") (term "1") (inst "#boolv=x;")) (rule "variableDeclaration" (formula "18") (term "1") (newnames "x_4")) (rule "greater_than_comparison_simple" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) + (rule "sequentialToParallel2" (formula "18") (ossStep)) + (rule "simplifyUpdate3" (formula "18") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "18") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "18") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "18") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "18") (term "2,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "18") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "18") (term "0,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "18") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "18") (term "1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "18") (term "1,0,0,1,0") (ossStep)) (rule "ifSplit" (formula "18")) (branch "if x_4 true" - (builtin "One Step Simplification" (formula "19")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "ifthenelse_concrete3" (formula "1") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "1") (ossStep)) + (rule "concrete_or_4" (formula "1") (ossStep)) (rule "elim_double_block_2" (formula "19") (term "1")) (rule "assignmentSubtractionInt" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19")) + (rule "sequentialToParallel2" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (ossStep)) + (rule "simplifyUpdate3" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0") (ossStep)) (rule "translateJavaSubInt" (formula "19") (term "0,1,0")) (rule "polySimp_elimSub" (formula "19") (term "0,1,0")) (rule "polySimp_addComm0" (formula "19") (term "0,1,0")) @@ -1819,16 +3028,197 @@ (rule "variableDeclaration" (formula "19") (term "1") (newnames "x_5")) (rule "remove_parentheses_right" (formula "19") (term "1")) (rule "assignmentAdditionInt" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19")) + (rule "sequentialToParallel2" (formula "19") (ossStep)) + (rule "simplifyUpdate3" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0") (ossStep)) (rule "translateJavaAddInt" (formula "19") (term "0,1,0")) (rule "polySimp_addComm0" (formula "19") (term "0,1,0")) (rule "widening_identity_cast_5" (formula "19") (term "1")) (rule "assignment" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19")) + (rule "sequentialToParallel2" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (ossStep)) + (rule "simplifyUpdate3" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,0") (ossStep)) (rule "tryEmpty" (formula "19") (term "1")) (rule "methodCallEmpty" (formula "19") (term "1")) (rule "emptyModality" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19") (ifInst "" (formula "9"))) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "19") (term "0,0") (ossStep)) + (rule "concrete_impl_2" (formula "19") (term "0") (ossStep)) + (rule "concrete_and_1" (formula "19") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "19") (term "0,0") (ossStep)) + (rule "concrete_not_2" (formula "19") (term "0") (ossStep)) + (rule "concrete_impl_1" (formula "19") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,0,0,0,0,0,0") (ossStep)) + (rule "replace_known_left" (formula "19") (term "1,0,0,0,0,0,0") (ifseqformula "9") (ossStep)) + (rule "concrete_and_3" (formula "19") (term "0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,0,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,0,1,0,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,3,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,3,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,0,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,0,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,0,1") (ossStep)) (rule "andRight" (formula "19")) (branch "Case 1" (rule "andRight" (formula "19")) @@ -1897,7 +3287,7 @@ (rule "polySimp_mulLiterals" (formula "15") (term "0,0")) (rule "polySimp_elimOne" (formula "15") (term "0,0")) (rule "replace_known_left" (formula "15") (term "0") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "15")) + (rule "concrete_impl_1" (formula "15") (ossStep)) (rule "inEqSimp_sepNegMonomial0" (formula "8")) (rule "polySimp_mulLiterals" (formula "8") (term "0")) (rule "polySimp_elimOne" (formula "8") (term "0")) @@ -1914,11 +3304,11 @@ (rule "times_zero_1" (formula "17") (term "1,0,0")) (rule "add_zero_right" (formula "17") (term "0,0")) (rule "leq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) + (rule "concrete_and_2" (formula "17") (ossStep)) (rule "false_right" (formula "17")) (rule "inEqSimp_contradInEq0" (formula "10") (ifseqformula "2")) (rule "qeq_literals" (formula "10") (term "0")) - (builtin "One Step Simplification" (formula "10")) + (rule "concrete_and_2" (formula "10") (ossStep)) (rule "closeFalse" (formula "10")) ) (branch "Case 2" @@ -1984,7 +3374,7 @@ (rule "mul_literals" (formula "3") (term "0,1")) (rule "polySimp_elimOne" (formula "3") (term "1,1")) (rule "replace_known_left" (formula "15") (term "0") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "15")) + (rule "concrete_impl_1" (formula "15") (ossStep)) (rule "inEqSimp_sepPosMonomial0" (formula "14") (term "0")) (rule "polySimp_mulComm0" (formula "14") (term "1,0")) (rule "polySimp_rightDist" (formula "14") (term "1,0")) @@ -1998,7 +3388,7 @@ (rule "times_zero_1" (formula "17") (term "1,0,0")) (rule "add_zero_right" (formula "17") (term "0,0")) (rule "leq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) + (rule "concrete_and_2" (formula "17") (ossStep)) (rule "false_right" (formula "17")) (rule "inEqSimp_contradInEq1" (formula "14") (term "0") (ifseqformula "3")) (rule "inEqSimp_homoInEq1" (formula "14") (term "0,0")) @@ -2013,7 +3403,8 @@ (rule "times_zero_1" (formula "14") (term "1,0,0,0")) (rule "add_zero_right" (formula "14") (term "0,0,0")) (rule "leq_literals" (formula "14") (term "0,0")) - (builtin "One Step Simplification" (formula "14")) + (rule "concrete_and_2" (formula "14") (term "0") (ossStep)) + (rule "concrete_impl_2" (formula "14") (ossStep)) (rule "true_left" (formula "14")) (rule "inEqSimp_contradInEq1" (formula "2") (ifseqformula "3")) (rule "andLeft" (formula "2")) @@ -2028,7 +3419,7 @@ ) (branch "Case 2" (rule "replace_known_right" (formula "13") (term "1") (ifseqformula "19")) - (builtin "One Step Simplification" (formula "13")) + (rule "concrete_impl_3" (formula "13") (ossStep)) (rule "notLeft" (formula "13")) (rule "inEqSimp_leqRight" (formula "15")) (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) @@ -2094,7 +3485,7 @@ (rule "times_zero_1" (formula "16") (term "1,0,0")) (rule "add_zero_right" (formula "16") (term "0,0")) (rule "leq_literals" (formula "16") (term "0")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_and_2" (formula "16") (ossStep)) (rule "false_right" (formula "16")) (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "3")) (rule "andLeft" (formula "1")) @@ -2110,17 +3501,27 @@ (branch "Case 2" (rule "impRight" (formula "19")) (rule "Contract_axiom_for_gcd_in_ParallelGcd" (formula "20") (term "1") (inst "i=i_1") (userinteraction)) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "11")) (ifInst "" (formula "4")) (ifInst "" (formula "2"))) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "11") (ossStep)) + (rule "replace_known_left" (formula "1") (term "1,1,0") (ifseqformula "4") (ossStep)) + (rule "replace_known_left" (formula "1") (term "0,1,1") (ifseqformula "2") (ossStep)) + (rule "concrete_and_1" (formula "1") (term "0,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "1,0") (ossStep)) + (rule "expandInInt" (formula "1") (term "1,0,0,0,1,0,0,0,1") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0,0,0,1,0,0,0,1") (ossStep)) + (rule "concrete_impl_1" (formula "1") (term "1,1") (ossStep)) (rule "wellFormedAnon" (formula "1") (term "1,0")) (rule "eqSymm" (formula "1") (term "1,1")) (rule "eqSymm" (formula "1") (term "1,1,0,1")) (rule "replace_known_left" (formula "1") (term "0,1,0") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "9"))) + (rule "replace_known_left" (formula "1") (term "1,1,0") (ifseqformula "9") (ossStep)) + (rule "concrete_and_1" (formula "1") (term "1,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0") (ossStep)) (rule "polySimp_elimSub" (formula "1") (term "3,0,1,1,0,1")) (rule "polySimp_homoEq" (formula "1") (term "0,1,0,0,1")) (rule "polySimp_elimSub" (formula "1") (term "2,0,1,1")) (rule "replace_known_right" (formula "1") (term "1,1") (ifseqformula "21")) - (builtin "One Step Simplification" (formula "1")) + (rule "concrete_and_4" (formula "1") (term "1") (ossStep)) + (rule "concrete_impl_3" (formula "1") (ossStep)) (rule "notLeft" (formula "1")) (rule "polySimp_mulComm0" (formula "21") (term "1,2,0")) (rule "polySimp_rightDist" (formula "21") (term "1,2,0")) @@ -2194,7 +3595,7 @@ (rule "polySimp_mulLiterals" (formula "16") (term "0,0")) (rule "polySimp_elimOne" (formula "16") (term "0,0")) (rule "replace_known_left" (formula "16") (term "0") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_impl_1" (formula "16") (ossStep)) (rule "applyEq" (formula "20") (term "1") (ifseqformula "16")) (rule "inEqSimp_sepNegMonomial0" (formula "8")) (rule "polySimp_mulLiterals" (formula "8") (term "0")) @@ -2217,7 +3618,7 @@ (rule "times_zero_1" (formula "18") (term "1,0,0")) (rule "add_zero_right" (formula "18") (term "0,0")) (rule "leq_literals" (formula "18") (term "0")) - (builtin "One Step Simplification" (formula "18")) + (rule "concrete_and_2" (formula "18") (ossStep)) (rule "false_right" (formula "18")) (rule "inEqSimp_contradInEq0" (formula "4") (ifseqformula "1")) (rule "andLeft" (formula "4")) @@ -2233,12 +3634,21 @@ (branch "Case 2" (rule "impRight" (formula "19")) (rule "Contract_axiom_for_gcd_in_ParallelGcd" (formula "20") (term "1") (inst "i=i_1") (userinteraction)) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "11")) (ifInst "" (formula "4")) (ifInst "" (formula "2"))) + (rule "replace_known_left" (formula "1") (term "0,0,0") (ifseqformula "11") (ossStep)) + (rule "replace_known_left" (formula "1") (term "1,1,0") (ifseqformula "4") (ossStep)) + (rule "replace_known_left" (formula "1") (term "0,1,0,1") (ifseqformula "2") (ossStep)) + (rule "concrete_and_1" (formula "1") (term "0,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "1,0") (ossStep)) + (rule "expandInInt" (formula "1") (term "1,0,0,0,1,0,0,0,1") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0,0,0,1,0,0,0,1") (ossStep)) + (rule "concrete_impl_1" (formula "1") (term "1,0,1") (ossStep)) (rule "wellFormedAnon" (formula "1") (term "1,0")) (rule "eqSymm" (formula "1") (term "1,0,1")) (rule "eqSymm" (formula "1") (term "1,1,1")) (rule "replace_known_left" (formula "1") (term "0,1,0") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "9"))) + (rule "replace_known_left" (formula "1") (term "1,1,0") (ifseqformula "9") (ossStep)) + (rule "concrete_and_1" (formula "1") (term "1,0") (ossStep)) + (rule "concrete_and_3" (formula "1") (term "0") (ossStep)) (rule "polySimp_homoEq" (formula "1") (term "0,1,0,0,1")) (rule "polySimp_elimSub" (formula "1") (term "3,0,1,0,1")) (rule "polySimp_elimSub" (formula "1") (term "2,0,1,1,1")) @@ -2258,7 +3668,9 @@ (rule "polySimp_pullOutFactor0" (formula "21") (term "0,3,0")) (rule "add_literals" (formula "21") (term "1,0,3,0")) (rule "replace_known_right" (formula "1") (term "1,0,1") (ifseqformula "21")) - (builtin "One Step Simplification" (formula "1")) + (rule "concrete_and_4" (formula "1") (term "0,1") (ossStep)) + (rule "concrete_and_2" (formula "1") (term "1") (ossStep)) + (rule "concrete_impl_3" (formula "1") (ossStep)) (rule "notLeft" (formula "1")) (rule "inEqSimp_ltRight" (formula "20")) (rule "times_zero_1" (formula "1") (term "0,0")) @@ -2325,7 +3737,7 @@ (rule "polySimp_mulLiterals" (formula "16") (term "0,0")) (rule "polySimp_elimOne" (formula "16") (term "0,0")) (rule "replace_known_left" (formula "16") (term "0") (ifseqformula "4")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_impl_1" (formula "16") (ossStep)) (rule "applyEq" (formula "20") (term "1") (ifseqformula "16")) (rule "inEqSimp_sepNegMonomial0" (formula "8")) (rule "polySimp_mulLiterals" (formula "8") (term "0")) @@ -2349,7 +3761,7 @@ (rule "times_zero_1" (formula "18") (term "1,0,0")) (rule "add_zero_right" (formula "18") (term "0,0")) (rule "leq_literals" (formula "18") (term "0")) - (builtin "One Step Simplification" (formula "18")) + (rule "concrete_and_2" (formula "18") (ossStep)) (rule "false_right" (formula "18")) (rule "inEqSimp_contradInEq1" (formula "15") (term "0") (ifseqformula "4")) (rule "inEqSimp_homoInEq1" (formula "15") (term "0,0")) @@ -2364,7 +3776,8 @@ (rule "times_zero_1" (formula "15") (term "1,0,0,0")) (rule "add_zero_right" (formula "15") (term "0,0,0")) (rule "leq_literals" (formula "15") (term "0,0")) - (builtin "One Step Simplification" (formula "15")) + (rule "concrete_and_2" (formula "15") (term "0") (ossStep)) + (rule "concrete_impl_2" (formula "15") (ossStep)) (rule "true_left" (formula "15")) (rule "inEqSimp_contradInEq0" (formula "4") (ifseqformula "1")) (rule "andLeft" (formula "4")) @@ -2440,7 +3853,7 @@ (rule "polySimp_mulLiterals" (formula "2") (term "1,1")) (rule "polySimp_elimOne" (formula "2") (term "1,1")) (rule "replace_known_left" (formula "14") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "14")) + (rule "concrete_impl_1" (formula "14") (ossStep)) (rule "inEqSimp_contradEq7" (formula "16") (ifseqformula "2")) (rule "polySimp_mulComm0" (formula "16") (term "1,0,0")) (rule "polySimp_pullOutFactor1b" (formula "16") (term "0,0")) @@ -2448,7 +3861,7 @@ (rule "times_zero_1" (formula "16") (term "1,0,0")) (rule "add_zero_right" (formula "16") (term "0,0")) (rule "leq_literals" (formula "16") (term "0")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_and_2" (formula "16") (ossStep)) (rule "false_right" (formula "16")) (rule "inEqSimp_contradInEq1" (formula "13") (term "0") (ifseqformula "2")) (rule "inEqSimp_homoInEq1" (formula "13") (term "0,0")) @@ -2463,13 +3876,19 @@ (rule "times_zero_1" (formula "13") (term "1,0,0,0")) (rule "add_zero_right" (formula "13") (term "0,0,0")) (rule "leq_literals" (formula "13") (term "0,0")) - (builtin "One Step Simplification" (formula "13")) + (rule "concrete_and_2" (formula "13") (term "0") (ossStep)) + (rule "concrete_impl_2" (formula "13") (ossStep)) (rule "true_left" (formula "13")) (rule "pullOutSelect" (formula "17") (term "0") (inst "selectSK=f_0_0")) (rule "simplifySelectOfAnon" (formula "1")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) + (rule "elementOfEmpty" (formula "1") (term "0,0,0,0") (ossStep)) + (rule "concrete_and_2" (formula "1") (term "0,0,0") (ossStep)) + (rule "concrete_or_2" (formula "1") (term "0,0") (ossStep)) + (rule "elementOfFreshLocs" (formula "1") (term "0,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0,0") (ifseqformula "17") (ossStep)) + (rule "ifthenelse_false" (formula "1") (term "0") (ossStep)) (rule "applyEqReverse" (formula "18") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "18")) + (rule "eqClose" (formula "18") (ossStep)) (rule "closeTrue" (formula "18")) ) ) @@ -2523,7 +3942,7 @@ (rule "add_literals" (formula "18") (term "1,0,1")) (rule "times_zero_1" (formula "18") (term "0,1")) (rule "leq_literals" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) + (rule "concrete_and_3" (formula "18") (ossStep)) (rule "inEqSimp_leqRight" (formula "18")) (rule "add_zero_right" (formula "1") (term "0")) (rule "polySimp_rightDist" (formula "1") (term "1,0")) @@ -2569,7 +3988,7 @@ (rule "polySimp_mulLiterals" (formula "15") (term "0,0")) (rule "polySimp_elimOne" (formula "15") (term "0,0")) (rule "replace_known_left" (formula "15") (term "0") (ifseqformula "3")) - (builtin "One Step Simplification" (formula "15")) + (rule "concrete_impl_1" (formula "15") (ossStep)) (rule "inEqSimp_sepNegMonomial1" (formula "1")) (rule "polySimp_mulLiterals" (formula "1") (term "0")) (rule "polySimp_elimOne" (formula "1") (term "0")) @@ -2580,7 +3999,7 @@ (rule "times_zero_1" (formula "17") (term "1,0,0")) (rule "add_zero_right" (formula "17") (term "0,0")) (rule "leq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) + (rule "concrete_and_2" (formula "17") (ossStep)) (rule "false_right" (formula "17")) (rule "inEqSimp_contradInEq1" (formula "1") (ifseqformula "2")) (rule "andLeft" (formula "1")) @@ -2594,8 +4013,16 @@ ) ) (branch "if x_4 false" - (builtin "One Step Simplification" (formula "19")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "19") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "ifthenelse_concrete3" (formula "1") (term "0") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "1,0") (ossStep)) + (rule "concrete_or_4" (formula "1") (term "0") (ossStep)) (rule "notLeft" (formula "1")) (rule "blockEmpty" (formula "19") (term "1")) (rule "postincrement" (formula "19") (term "1")) @@ -2604,16 +4031,201 @@ (rule "variableDeclaration" (formula "19") (term "1") (newnames "x_5")) (rule "remove_parentheses_right" (formula "19") (term "1")) (rule "assignmentAdditionInt" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19")) + (rule "sequentialToParallel2" (formula "19") (ossStep)) + (rule "simplifyUpdate3" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0") (ossStep)) (rule "translateJavaAddInt" (formula "19") (term "0,1,0")) (rule "polySimp_addComm0" (formula "19") (term "0,1,0")) (rule "widening_identity_cast_5" (formula "19") (term "1")) (rule "assignment" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19")) + (rule "sequentialToParallel2" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (ossStep)) + (rule "simplifyUpdate3" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,0") (ossStep)) (rule "tryEmpty" (formula "19") (term "1")) (rule "methodCallEmpty" (formula "19") (term "1")) (rule "emptyModality" (formula "19") (term "1")) - (builtin "One Step Simplification" (formula "19") (ifInst "" (formula "8")) (ifInst "" (formula "9")) (ifInst "" (formula "10"))) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "19") (term "0,0") (ossStep)) + (rule "concrete_impl_2" (formula "19") (term "0") (ossStep)) + (rule "concrete_and_1" (formula "19") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "19") (term "0,0") (ossStep)) + (rule "concrete_not_2" (formula "19") (term "0") (ossStep)) + (rule "concrete_impl_1" (formula "19") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "1,0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,0,0,0,0,0,0") (ossStep)) + (rule "replace_known_left" (formula "19") (term "1,0,0,0,0,0,0") (ifseqformula "8") (ossStep)) + (rule "concrete_and_3" (formula "19") (term "0,0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,0,0,0,0,0") (ossStep)) + (rule "replace_known_left" (formula "19") (term "1,0,0,0,0,0") (ifseqformula "9") (ossStep)) + (rule "concrete_and_3" (formula "19") (term "0,0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,0,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,0,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,0,1,0,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,0,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,0,0,0,0") (ossStep)) + (rule "replace_known_left" (formula "19") (term "1,0,0,0,0") (ifseqformula "10") (ossStep)) + (rule "concrete_and_3" (formula "19") (term "0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,2,0,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,2,0,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,3,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,3,0,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,3,0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,3,0,1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "2,1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "3,1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "3,1,1,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "19") (term "0,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,1,0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,0,1,0,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,0,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1,1,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "2,1,1,0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "19") (term "1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "0,0,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "19") (term "1,0,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "19") (term "1,0,1") (ossStep)) + (rule "applyOnPV" (formula "19") (term "0,1,0,1") (ossStep)) (rule "andRight" (formula "19")) (branch "Case 1" (rule "andRight" (formula "19")) @@ -2685,7 +4297,7 @@ (rule "polySimp_elimOne" (formula "14") (term "1,1,0")) (rule "inEqSimp_strengthen0" (formula "2") (ifseqformula "17")) (rule "replace_known_left" (formula "14") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "14")) + (rule "concrete_impl_1" (formula "14") (ossStep)) (rule "inEqSimp_contradEq3" (formula "17") (ifseqformula "2")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,0")) (rule "polySimp_pullOutFactor1b" (formula "17") (term "0,0")) @@ -2693,17 +4305,17 @@ (rule "times_zero_1" (formula "17") (term "1,0,0")) (rule "add_zero_right" (formula "17") (term "0,0")) (rule "qeq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) + (rule "concrete_and_2" (formula "17") (ossStep)) (rule "false_right" (formula "17")) (rule "inEqSimp_contradInEq1" (formula "3") (ifseqformula "10")) (rule "qeq_literals" (formula "3") (term "0")) - (builtin "One Step Simplification" (formula "3")) + (rule "concrete_and_2" (formula "3") (ossStep)) (rule "closeFalse" (formula "3")) ) (branch "Case 2" (rule "impRight" (formula "19")) (rule "replace_known_left" (formula "12") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "12")) + (rule "concrete_impl_1" (formula "12") (ossStep)) (rule "inEqSimp_leqRight" (formula "16")) (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) (rule "inEqSimp_gtRight" (formula "15")) @@ -2736,7 +4348,7 @@ (branch "Case 2" (rule "impRight" (formula "19")) (rule "replace_known_left" (formula "13") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "13")) + (rule "concrete_impl_1" (formula "13") (ossStep)) (rule "inEqSimp_leqRight" (formula "16")) (rule "polySimp_mulComm0" (formula "1") (term "1,0,0")) (rule "inEqSimp_gtRight" (formula "15")) @@ -2827,7 +4439,7 @@ (rule "polySimp_elimOne" (formula "13") (term "1,1,0")) (rule "inEqSimp_strengthen0" (formula "1") (ifseqformula "16")) (rule "replace_known_left" (formula "13") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "13")) + (rule "concrete_impl_1" (formula "13") (ossStep)) (rule "inEqSimp_contradEq3" (formula "16") (ifseqformula "1")) (rule "polySimp_mulComm0" (formula "16") (term "1,0,0")) (rule "polySimp_pullOutFactor1b" (formula "16") (term "0,0")) @@ -2835,7 +4447,7 @@ (rule "times_zero_1" (formula "16") (term "1,0,0")) (rule "add_zero_right" (formula "16") (term "0,0")) (rule "qeq_literals" (formula "16") (term "0")) - (builtin "One Step Simplification" (formula "16")) + (rule "concrete_and_2" (formula "16") (ossStep)) (rule "false_right" (formula "16")) (rule "inEqSimp_contradInEq0" (formula "14") (term "0") (ifseqformula "1")) (rule "inEqSimp_homoInEq1" (formula "14") (term "0,0")) @@ -2850,13 +4462,19 @@ (rule "times_zero_1" (formula "14") (term "1,0,0,0")) (rule "add_zero_right" (formula "14") (term "0,0,0")) (rule "leq_literals" (formula "14") (term "0,0")) - (builtin "One Step Simplification" (formula "14")) + (rule "concrete_and_2" (formula "14") (term "0") (ossStep)) + (rule "concrete_impl_2" (formula "14") (ossStep)) (rule "true_left" (formula "14")) (rule "pullOutSelect" (formula "17") (term "0") (inst "selectSK=f_0_0")) (rule "simplifySelectOfAnon" (formula "1")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "17"))) + (rule "elementOfEmpty" (formula "1") (term "0,0,0,0") (ossStep)) + (rule "concrete_and_2" (formula "1") (term "0,0,0") (ossStep)) + (rule "concrete_or_2" (formula "1") (term "0,0") (ossStep)) + (rule "elementOfFreshLocs" (formula "1") (term "0,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0,0") (ifseqformula "17") (ossStep)) + (rule "ifthenelse_false" (formula "1") (term "0") (ossStep)) (rule "applyEqReverse" (formula "18") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "18")) + (rule "eqClose" (formula "18") (ossStep)) (rule "closeTrue" (formula "18")) ) ) @@ -2910,7 +4528,7 @@ (rule "add_literals" (formula "18") (term "1,0,1")) (rule "times_zero_1" (formula "18") (term "0,1")) (rule "leq_literals" (formula "18") (term "1")) - (builtin "One Step Simplification" (formula "18")) + (rule "concrete_and_3" (formula "18") (ossStep)) (rule "inEqSimp_leqRight" (formula "18")) (rule "add_zero_right" (formula "1") (term "0")) (rule "polySimp_rightDist" (formula "1") (term "1,0")) @@ -2957,7 +4575,7 @@ (rule "polySimp_elimOne" (formula "1") (term "0")) (rule "inEqSimp_strengthen0" (formula "2") (ifseqformula "17")) (rule "replace_known_left" (formula "14") (term "0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "14")) + (rule "concrete_impl_1" (formula "14") (ossStep)) (rule "inEqSimp_contradEq3" (formula "17") (ifseqformula "2")) (rule "polySimp_mulComm0" (formula "17") (term "1,0,0")) (rule "polySimp_pullOutFactor1b" (formula "17") (term "0,0")) @@ -2965,7 +4583,7 @@ (rule "times_zero_1" (formula "17") (term "1,0,0")) (rule "add_zero_right" (formula "17") (term "0,0")) (rule "qeq_literals" (formula "17") (term "0")) - (builtin "One Step Simplification" (formula "17")) + (rule "concrete_and_2" (formula "17") (ossStep)) (rule "false_right" (formula "17")) (rule "inEqSimp_contradInEq0" (formula "3") (ifseqformula "1")) (rule "andLeft" (formula "3")) @@ -2981,11 +4599,37 @@ ) ) (branch "Null Reference (_r = null)" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "16"))) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "16") (ossStep)) (rule "closeFalse" (formula "1")) ) (branch "Index Out of Bounds (_r != null, but i Out of Bounds!)" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "16")) (ifInst "" (formula "14"))) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0,0") (ifseqformula "16") (ossStep)) + (rule "concrete_not_2" (formula "1") (term "0") (ossStep)) + (rule "concrete_and_1" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "1") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "14") (ossStep)) + (rule "concrete_or_2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) (rule "arrayLengthIsAnInt" (formula "14") (term "0")) (rule "arrayLengthNotNegative" (formula "15") (term "0")) (rule "methodCallParamThrow" (formula "19") (term "1,0,0,1")) @@ -3002,53 +4646,107 @@ (rule "staticMethodCallStaticWithAssignmentViaTypereference" (formula "19") (term "1") (inst "#v0=a_3;")) (rule "variableDeclaration" (formula "19") (term "1") (newnames "a_3")) (rule "methodBodyExpand" (formula "19") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "19")) + (rule "simplifyUpdate2" (formula "19") (term "1") (ossStep)) (rule "variableDeclaration" (formula "19") (term "1") (newnames "__NEW__")) (rule "staticMethodCallStaticWithAssignmentViaTypereference" (formula "19") (term "1") (inst "#v0=a_4;")) (rule "variableDeclaration" (formula "19") (term "1") (newnames "a_4")) (rule "allocateInstance" (formula "19")) - (builtin "One Step Simplification" (formula "20")) - (builtin "One Step Simplification" (formula "1")) + (rule "sequentialToParallel2" (formula "20") (ossStep)) + (rule "simplifyUpdate2" (formula "20") (ossStep)) + (rule "simplifyUpdate3" (formula "20") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "20") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "20") (term "0,1,0") (ossStep)) + (rule "applyOnPV" (formula "20") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "20") (term "1,0,1,0") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1,1,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (term "0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0,1,0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "1,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0,1,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "1") (term "0,0,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0,0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0,0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "2,0,0,1,1,0") (ossStep)) (rule "wellFormedAnon" (formula "1") (term "0,1,0")) (rule "andLeft" (formula "1")) (rule "andLeft" (formula "1")) (rule "notLeft" (formula "1")) (rule "replace_known_left" (formula "1") (term "0,0") (ifseqformula "6")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "11"))) + (rule "replace_known_left" (formula "1") (term "1,0") (ifseqformula "11") (ossStep)) + (rule "concrete_and_1" (formula "1") (term "0") (ossStep)) + (rule "concrete_impl_1" (formula "1") (ossStep)) (rule "notLeft" (formula "1")) (rule "blockEmpty" (formula "22") (term "1")) (rule "assignment" (formula "22") (term "1")) - (builtin "One Step Simplification" (formula "22")) + (rule "sequentialToParallel2" (formula "22") (ossStep)) + (rule "simplifyUpdate3" (formula "22") (term "1,0") (ossStep)) (rule "selectCreatedOfAnonAsFormula" (formula "17")) (rule "orRight" (formula "17")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "assignment_write_attribute_this" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "23") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "3,0,1,0") (ossStep)) (rule "methodCallWithinClass" (formula "23") (term "1")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallSuper" (formula "23") (term "1")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallSuper" (formula "23") (term "1")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore__0,savedHeapBefore__0")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallSuper" (formula "23") (term "1")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore__1,savedHeapBefore__1")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallSuper" (formula "23") (term "1")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore__2,savedHeapBefore__2")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallSuper" (formula "23") (term "1")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore__3,savedHeapBefore__3")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallEmpty" (formula "23") (term "1")) (rule "blockEmpty" (formula "23") (term "1")) (rule "assignment_write_attribute_this" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "23") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "3,0,1,0") (ossStep)) (rule "assignment_write_attribute_this" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "23") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "3,0,1,0") (ossStep)) (rule "methodCallEmpty" (formula "23") (term "1")) (rule "methodCallEmpty" (formula "23") (term "1")) (rule "methodCallEmpty" (formula "23") (term "1")) @@ -3058,34 +4756,64 @@ (rule "methodCallReturnIgnoreResult" (formula "23") (term "1")) (rule "methodCallReturn" (formula "23") (term "1")) (rule "assignment" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,1,0") (ossStep)) (rule "methodCallEmpty" (formula "23") (term "1")) (rule "blockEmpty" (formula "23") (term "1")) (rule "assignment" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,1,0") (ossStep)) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore_,savedHeapBefore_")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallSuper" (formula "23") (term "1")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore__0,savedHeapBefore__0")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallSuper" (formula "23") (term "1")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore__1,savedHeapBefore__1")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallSuper" (formula "23") (term "1")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore__2,savedHeapBefore__2")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallSuper" (formula "23") (term "1")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore__3,savedHeapBefore__3")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallSuper" (formula "23") (term "1")) (rule "methodBodyExpand" (formula "23") (term "1") (newnames "heapBefore__4,savedHeapBefore__4")) - (builtin "One Step Simplification" (formula "23")) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) (rule "methodCallEmpty" (formula "23") (term "1")) (rule "blockEmpty" (formula "23") (term "1")) (rule "assignment_write_attribute_this" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "23") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "3,0,1,0") (ossStep)) (rule "assignment_write_attribute_this" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "dropEffectlessStores" (formula "23") (term "0,1,0,0") (ossStep)) + (rule "dropEffectlessStores" (formula "23") (term "0,1,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "23") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "3,0,1,0") (ossStep)) (rule "methodCallEmpty" (formula "23") (term "1")) (rule "methodCallEmpty" (formula "23") (term "1")) (rule "methodCallEmpty" (formula "23") (term "1")) @@ -3094,68 +4822,192 @@ (rule "blockEmpty" (formula "23") (term "1")) (rule "assignment_write_attribute" (formula "23") (term "1")) (branch "Normal Execution (a_2 != null)" - (builtin "One Step Simplification" (formula "24")) - (builtin "One Step Simplification" (formula "23") (ifInst "" (formula "19"))) - (rule "false_right" (formula "23")) + (rule "sequentialToParallel2" (formula "24") (ossStep)) + (rule "dropEffectlessStores" (formula "24") (term "0,1,0,0") (ossStep)) + (rule "dropEffectlessStores" (formula "24") (term "0,1,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "24") (ossStep)) + (rule "simplifyUpdate3" (formula "24") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "24") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "24") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "24") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "24") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "24") (term "1,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "24") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "24") (term "2,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "24") (term "3,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1") (ossStep)) (rule "assignment" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "dropEffectlessStores" (formula "23") (term "0,1,0,0") (ossStep)) + (rule "dropEffectlessStores" (formula "23") (term "0,1,0,1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,1,0") (ossStep)) (rule "tryCatchThrow" (formula "23") (term "1")) (rule "ifElseUnfold" (formula "23") (term "1") (inst "#boolv=x;")) (rule "variableDeclaration" (formula "23") (term "1") (newnames "x_5")) (rule "equality_comparison_simple" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "23") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "2,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,0,1,0") (ossStep)) (rule "replace_known_right" (formula "23") (term "0,0,1,0") (ifseqformula "19")) - (builtin "One Step Simplification" (formula "23")) + (rule "ifthenelse_false" (formula "23") (term "0,1,0") (ossStep)) (rule "ifElseSplit" (formula "23")) (branch "if x_5 true" - (builtin "One Step Simplification" (formula "24")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "24") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (ossStep)) (rule "closeFalse" (formula "1")) ) (branch "if x_5 false" - (builtin "One Step Simplification" (formula "24")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "24") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "0") (ossStep)) + (rule "concrete_not_2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "ifElseSplit" (formula "23")) (branch "if a_1 instanceof java.lang.Throwable true" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "instanceof_static_type" (formula "1") (term "2,0,1") (ossStep)) + (rule "ifthenelse_concrete4" (formula "1") (term "1") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_4" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "20") (ossStep)) + (rule "concrete_not_2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "variableDeclaration" (formula "23") (term "1") (newnames "e")) (rule "delete_unnecessary_cast" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "24")) - (builtin "One Step Simplification" (formula "1")) + (rule "sequentialToParallel2" (formula "24") (ossStep)) + (rule "simplifyUpdate2" (formula "24") (ossStep)) + (rule "simplifyUpdate3" (formula "24") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "24") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "24") (term "0,1,0") (ossStep)) + (rule "instanceof_static_type" (formula "1") (term "0,1,1") (ossStep)) + (rule "eqClose" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_3" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "assignment" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) (rule "assignment" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,1,0") (ossStep)) (rule "methodCallEmpty" (formula "23") (term "1")) (rule "emptyModality" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "applyOnRigidFormula" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,0") (ossStep)) + (rule "eqClose" (formula "23") (term "0,0") (ossStep)) + (rule "concrete_impl_1" (formula "23") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (term "0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (term "1,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "0,0,1") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,0,1") (ossStep)) + (rule "eqClose" (formula "23") (term "0,0,1") (ossStep)) + (rule "concrete_not_1" (formula "23") (term "0,1") (ossStep)) + (rule "concrete_impl_2" (formula "23") (term "1") (ossStep)) + (rule "concrete_and_3" (formula "23") (ossStep)) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "23") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "2,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,0,1,0") (ossStep)) (rule "replace_known_right" (formula "23") (term "0,0,1,0") (ifseqformula "19")) - (builtin "One Step Simplification" (formula "23")) + (rule "ifthenelse_false" (formula "23") (term "0,1,0") (ossStep)) (rule "ifElseSplit" (formula "23")) (branch "if x_4 true" - (builtin "One Step Simplification" (formula "24")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "24") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (ossStep)) (rule "closeFalse" (formula "1")) ) (branch "if x_4 false" - (builtin "One Step Simplification" (formula "24")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "24") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "0") (ossStep)) + (rule "concrete_not_2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "elim_double_block" (formula "23") (term "1")) (rule "ifElseSplit" (formula "23")) (branch "if thrownExc instanceof java.lang.Throwable true" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "instanceof_static_type" (formula "1") (term "2,0,1") (ossStep)) + (rule "ifthenelse_concrete4" (formula "1") (term "1") (ossStep)) + (rule "boolean_not_equal_2" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_4" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "20") (ossStep)) + (rule "concrete_not_2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "variableDeclaration" (formula "23") (term "1") (newnames "e_1")) (rule "delete_unnecessary_cast" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "24")) - (builtin "One Step Simplification" (formula "1")) + (rule "sequentialToParallel2" (formula "24") (ossStep)) + (rule "simplifyUpdate2" (formula "24") (ossStep)) + (rule "simplifyUpdate3" (formula "24") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "24") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "24") (term "0,1,0") (ossStep)) + (rule "instanceof_static_type" (formula "1") (term "0,1,1") (ossStep)) + (rule "eqClose" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_3" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) (rule "true_left" (formula "1")) (rule "assignment" (formula "23") (term "1")) - (builtin "One Step Simplification" (formula "23")) + (rule "sequentialToParallel2" (formula "23") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "simplifyUpdate3" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "23") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,1,0") (ossStep)) (rule "emptyModality" (formula "23") (term "1")) (rule "andRight" (formula "23")) (branch "Case 1" @@ -3164,11 +5016,19 @@ (rule "impRight" (formula "23")) (rule "andRight" (formula "24")) (branch "Case 1" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "20") (ossStep)) (rule "closeFalse" (formula "1")) ) (branch "Case 2" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "20") (ossStep)) (rule "closeFalse" (formula "1")) ) ) @@ -3176,14 +5036,50 @@ (rule "impRight" (formula "23")) (rule "orRight" (formula "24")) (rule "orRight" (formula "24")) - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) - (builtin "One Step Simplification" (formula "26")) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "replace_known_right" (formula "1") (term "0") (ifseqformula "20") (ossStep)) + (rule "concrete_not_2" (formula "1") (ossStep)) + (rule "simplifyUpdate2" (formula "26") (ossStep)) + (rule "applyOnRigidFormula" (formula "26") (ossStep)) + (rule "simplifyUpdate1" (formula "26") (term "1") (ossStep)) + (rule "applyOnRigidTerm" (formula "26") (term "0") (ossStep)) + (rule "applyOnPV" (formula "26") (term "0,0") (ossStep)) + (rule "instanceof_static_type" (formula "26") (term "0") (ossStep)) + (rule "eqClose" (formula "26") (ossStep)) (rule "closeTrue" (formula "26")) ) ) (branch "Case 2" - (builtin "One Step Simplification" (formula "23")) - (builtin "One Step Simplification" (formula "3")) + (rule "simplifyUpdate2" (formula "23") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (term "0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "23") (term "0,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,1,0,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "23") (term "0,0,1,0,0,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,0,1,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "2,0,0,1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "23") (term "1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "23") (term "0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "2,0,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "23") (term "1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "23") (term "0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "23") (term "2,1,1,0,0") (ossStep)) + (rule "expandInInt" (formula "3") (ossStep)) (rule "true_left" (formula "3")) (rule "allRight" (formula "22") (inst "sk=f_0")) (rule "allRight" (formula "22") (inst "sk=o_0")) @@ -3242,43 +5138,232 @@ (rule "polySimp_elimOne" (formula "13") (term "0")) (rule "inEqSimp_contradInEq0" (formula "11") (ifseqformula "4")) (rule "qeq_literals" (formula "11") (term "0")) - (builtin "One Step Simplification" (formula "11")) + (rule "concrete_and_2" (formula "11") (ossStep)) (rule "closeFalse" (formula "11")) ) ) (branch "if thrownExc instanceof java.lang.Throwable false" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "ifthenelse_concrete3" (formula "1") (term "1") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1,1") (ossStep)) + (rule "instanceof_static_type" (formula "1") (term "0,0,1,1") (ossStep)) + (rule "eqClose" (formula "1") (term "0,1,1") (ossStep)) + (rule "concrete_not_1" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_4" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "20") (ossStep)) (rule "closeFalse" (formula "1")) ) ) ) (branch "if a_1 instanceof java.lang.Throwable false" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "ifthenelse_concrete3" (formula "1") (term "1") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1,1") (ossStep)) + (rule "instanceof_static_type" (formula "1") (term "0,0,1,1") (ossStep)) + (rule "eqClose" (formula "1") (term "0,1,1") (ossStep)) + (rule "concrete_not_1" (formula "1") (term "1,1") (ossStep)) + (rule "concrete_or_4" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "20") (ossStep)) (rule "closeFalse" (formula "1")) ) ) ) (branch "Null Reference (a_2 = null)" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "20"))) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "20") (ossStep)) (rule "closeFalse" (formula "1")) ) ) ) ) (branch "Null Reference (_r = null)" - (builtin "One Step Simplification" (formula "1") (ifInst "" (formula "15"))) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1") (ossStep)) + (rule "replace_known_right" (formula "1") (ifseqformula "15") (ossStep)) (rule "closeFalse" (formula "1")) ) ) (branch "if x false" - (builtin "One Step Simplification" (formula "16")) - (builtin "One Step Simplification" (formula "1")) + (rule "simplifyUpdate2" (formula "16") (ossStep)) + (rule "false_to_not_true" (formula "1") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "1") (term "0") (ossStep)) + (rule "applyOnPV" (formula "1") (term "0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "1") (term "1,0") (ossStep)) + (rule "eqClose" (formula "1") (term "0") (ossStep)) + (rule "concrete_not_1" (formula "1") (ossStep)) (rule "closeFalse" (formula "1")) ) ) (branch "Use Case" - (builtin "One Step Simplification" (formula "9")) - (builtin "One Step Simplification" (formula "7")) + (rule "false_to_not_true" (formula "9") (term "0,0,1,1") (ossStep)) + (rule "simplifyUpdate2" (formula "9") (ossStep)) + (rule "simplifyUpdate2" (formula "9") (term "1") (ossStep)) + (rule "sequentialToParallel2" (formula "9") (ossStep)) + (rule "simplifyUpdate2" (formula "9") (ossStep)) + (rule "simplifyUpdate3" (formula "9") (term "1,0") (ossStep)) + (rule "expandInInt" (formula "7") (term "0,0,1,1,1") (ossStep)) + (rule "concrete_and_1" (formula "7") (term "0,1,1,1") (ossStep)) + (rule "expandInInt" (formula "7") (term "0,1,1,1") (ossStep)) + (rule "concrete_and_1" (formula "7") (term "1,1,1") (ossStep)) + (rule "expandInInt" (formula "7") (term "1,1,1") (ossStep)) + (rule "concrete_and_3" (formula "7") (term "1,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0,0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,0,0,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,0,0,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,0,0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,0,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,0,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,0,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,0,1,0,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,1,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,1,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,0,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,0,1,1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,1,1,1,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "2,1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,2,1,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,2,1,1,1,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,2,1,1,1,0,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,2,1,1,1,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,1,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,0,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,0,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,0,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,0,1,1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "3,1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,3,1,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "0,3,1,1,1,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,3,1,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,3,1,1,1,1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "1,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "2,1,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "3,1,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,0") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,1,0") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1") (ossStep)) + (rule "simplifyUpdate2" (formula "7") (term "0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "7") (term "1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,0,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,0,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,0,1,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "7") (term "1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "0,1,1,1") (ossStep)) + (rule "applyOnPV" (formula "7") (term "1,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "2,1,1,1") (ossStep)) + (rule "simplifyUpdate1" (formula "7") (term "3,1,1,1") (ossStep)) (rule "andLeft" (formula "7")) (rule "andLeft" (formula "7")) (rule "andLeft" (formula "7")) @@ -3287,30 +5372,136 @@ (rule "variableDeclarationAssign" (formula "14") (term "1")) (rule "variableDeclaration" (formula "14") (term "1") (newnames "b_0_1")) (rule "inequality_comparison_simple" (formula "14") (term "1")) - (builtin "One Step Simplification" (formula "14")) + (rule "sequentialToParallel2" (formula "14") (ossStep)) + (rule "simplifyUpdate2" (formula "14") (ossStep)) + (rule "simplifyUpdate3" (formula "14") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "14") (term "1,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "14") (term "0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "14") (term "1,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "14") (term "2,0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "14") (term "0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "14") (term "0,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "14") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "14") (term "1,0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "14") (term "1,0,0,1,0") (ossStep)) (rule "eqSymm" (formula "14") (term "0,0,1,0")) (rule "methodCallEmpty" (formula "14") (term "1")) (rule "emptyModality" (formula "14") (term "1")) - (builtin "One Step Simplification" (formula "14")) + (rule "applyOnRigidFormula" (formula "14") (ossStep)) + (rule "simplifyUpdate2" (formula "14") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "14") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "14") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "14") (term "0,0") (ossStep)) + (rule "applyOnPV" (formula "14") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "14") (term "1,0,0") (ossStep)) + (rule "ifthenelse_concrete4" (formula "14") (term "0,0") (ossStep)) + (rule "boolean_not_equal_2" (formula "14") (term "1,0,0") (ossStep)) + (rule "concrete_or_4" (formula "14") (term "0,0") (ossStep)) + (rule "double_not" (formula "14") (term "0") (ossStep)) (rule "impRight" (formula "14")) (rule "methodCallReturn" (formula "15") (term "1")) (rule "assignment" (formula "15") (term "1")) - (builtin "One Step Simplification" (formula "15")) + (rule "sequentialToParallel2" (formula "15") (ossStep)) + (rule "simplifyUpdate2" (formula "15") (ossStep)) + (rule "simplifyUpdate3" (formula "15") (term "1,0") (ossStep)) + (rule "applyOnElementary" (formula "15") (term "1,0") (ossStep)) + (rule "applyOnPV" (formula "15") (term "0,1,0") (ossStep)) (rule "methodCallEmpty" (formula "15") (term "1")) (rule "tryEmpty" (formula "15") (term "1")) (rule "emptyModality" (formula "15") (term "1")) - (builtin "One Step Simplification" (formula "15")) + (rule "applyOnRigidFormula" (formula "15") (ossStep)) + (rule "simplifyUpdate2" (formula "15") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0") (ossStep)) + (rule "simplifyUpdate2" (formula "15") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "15") (term "0,0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "15") (term "1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,0,0") (ossStep)) + (rule "applyOnPV" (formula "15") (term "0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,0,0,0") (ossStep)) + (rule "eqClose" (formula "15") (term "0,0,0") (ossStep)) + (rule "concrete_impl_1" (formula "15") (term "0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,0") (ossStep)) + (rule "simplifyUpdate2" (formula "15") (term "0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,0,0") (ossStep)) + (rule "applyOnPV" (formula "15") (term "0,0,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,0,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "15") (term "1,1,0,0") (ossStep)) + (rule "applyOnRigidTerm" (formula "15") (term "0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "0,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "15") (term "0,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,0,1,0,0") (ossStep)) + (rule "applyOnPV" (formula "15") (term "1,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "2,0,1,0,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "3,0,1,0,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,1,0") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,0,1,0") (ossStep)) + (rule "applyOnPV" (formula "15") (term "0,0,0,1,0") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,0,0,1,0") (ossStep)) + (rule "eqClose" (formula "15") (term "0,0,1,0") (ossStep)) + (rule "concrete_not_1" (formula "15") (term "0,1,0") (ossStep)) + (rule "concrete_impl_2" (formula "15") (term "1,0") (ossStep)) + (rule "concrete_and_3" (formula "15") (term "0") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "1") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "15") (term "0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,0,0,1") (ossStep)) + (rule "simplifyUpdate2" (formula "15") (term "0,0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "1,0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "0,1,0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,0,1,0,0,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "15") (term "0,0,1,0,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "15") (term "0,0,0,1,0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,0,0,1,0,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "2,0,0,1,0,0,0,1") (ossStep)) + (rule "applyOnRigidFormula" (formula "15") (term "1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "0,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,1,0,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "15") (term "0,1,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "15") (term "0,0,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,0,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "2,0,1,0,0,1") (ossStep)) + (rule "applyOnRigidTerm" (formula "15") (term "1,1,0,0,1") (ossStep)) + (rule "applyOnPV" (formula "15") (term "0,1,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "1,1,1,0,0,1") (ossStep)) + (rule "simplifyUpdate1" (formula "15") (term "2,1,1,0,0,1") (ossStep)) (rule "selectOfAnon" (formula "15") (term "1,1,0,0,1")) - (builtin "One Step Simplification" (formula "15")) + (rule "elementOfEmpty" (formula "15") (term "0,0,0,1,1,0,0,1") (ossStep)) + (rule "concrete_and_2" (formula "15") (term "0,0,1,1,0,0,1") (ossStep)) + (rule "concrete_or_2" (formula "15") (term "0,1,1,0,0,1") (ossStep)) + (rule "elementOfFreshLocs" (formula "15") (term "0,1,1,0,0,1") (ossStep)) (rule "applyEqRigid" (formula "11") (term "3,0") (ifseqformula "1") (userinteraction)) (rule "Contract_axiom_for_gcd_in_ParallelGcd" (formula "11") (term "1") (inst "i=i_1") (userinteraction)) (rule "Contract_axiom_for_gcd_in_ParallelGcd" (formula "12") (term "0") (inst "i=i_1") (userinteraction)) - (builtin "One Step Simplification" (formula "12") (ifInst "" (formula "9")) (ifInst "" (formula "9")) (ifInst "" (formula "2"))) - (builtin "One Step Simplification" (formula "11") (ifInst "" (formula "5")) (ifInst "" (formula "6")) (ifInst "" (formula "2"))) + (rule "replace_known_left" (formula "12") (term "0,0,0") (ifseqformula "9") (ossStep)) + (rule "replace_known_left" (formula "12") (term "1,0,0") (ifseqformula "9") (ossStep)) + (rule "replace_known_left" (formula "12") (term "1,1,0") (ifseqformula "2") (ossStep)) + (rule "concrete_and_1" (formula "12") (term "0,0") (ossStep)) + (rule "concrete_and_1" (formula "12") (term "0") (ossStep)) + (rule "concrete_and_3" (formula "12") (term "0") (ossStep)) + (rule "eq_and_2" (formula "12") (term "0,0,0,0,1") (ossStep)) + (rule "expandInInt" (formula "12") (term "1,0,0,0,1,0,0,0,1") (ossStep)) + (rule "concrete_and_3" (formula "12") (term "0,0,0,1,0,0,0,1") (ossStep)) + (rule "eq_and" (formula "12") (term "1,0,0,1,0,0,0,1") (ossStep)) + (rule "eqClose" (formula "12") (term "0,1,0,0,1") (ossStep)) + (rule "concrete_impl_1" (formula "12") (term "1,0,0,1") (ossStep)) + (rule "replace_known_left" (formula "11") (term "0,0,0") (ifseqformula "5") (ossStep)) + (rule "replace_known_left" (formula "11") (term "1,0,0") (ifseqformula "6") (ossStep)) + (rule "replace_known_left" (formula "11") (term "1,1,0") (ifseqformula "2") (ossStep)) + (rule "concrete_and_1" (formula "11") (term "0,0") (ossStep)) + (rule "concrete_and_1" (formula "11") (term "0") (ossStep)) + (rule "concrete_and_3" (formula "11") (term "0") (ossStep)) + (rule "expandInInt" (formula "11") (term "1,0,0,0,1,0,0,0,1") (ossStep)) + (rule "concrete_and_3" (formula "11") (term "0,0,0,1,0,0,0,1") (ossStep)) (rule "wellFormedAnon" (formula "12") (term "0")) (rule "wellFormedAnon" (formula "11") (term "0")) (rule "eqSymm" (formula "17") (term "1,0,0,1")) - (builtin "One Step Simplification" (formula "17")) + (rule "ifthenelse_concrete4" (formula "17") (term "1,0,0,1") (ossStep)) (rule "eqSymm" (formula "15") (term "1")) (rule "eqSymm" (formula "14") (term "1")) (rule "eqSymm" (formula "12") (term "1,1,0,1")) @@ -3319,7 +5510,9 @@ (rule "eqSymm" (formula "11") (term "1,1,0,1")) (rule "eqSymm" (formula "11") (term "0,1,0,0,1")) (rule "replace_known_left" (formula "12") (term "0,0") (ifseqformula "2")) - (builtin "One Step Simplification" (formula "12") (ifInst "" (formula "7"))) + (rule "replace_known_left" (formula "12") (term "1,0") (ifseqformula "7") (ossStep)) + (rule "concrete_and_1" (formula "12") (term "0") (ossStep)) + (rule "concrete_impl_1" (formula "12") (ossStep)) (rule "andLeft" (formula "12")) (rule "andLeft" (formula "12")) (rule "andLeft" (formula "12")) @@ -3327,7 +5520,9 @@ (rule "notLeft" (formula "13")) (rule "andLeft" (formula "12")) (rule "replace_known_left" (formula "11") (term "1,0") (ifseqformula "7")) - (builtin "One Step Simplification" (formula "11") (ifInst "" (formula "2"))) + (rule "replace_known_left" (formula "11") (term "0,0") (ifseqformula "2") (ossStep)) + (rule "concrete_and_1" (formula "11") (term "0") (ossStep)) + (rule "concrete_impl_1" (formula "11") (ossStep)) (rule "andLeft" (formula "11")) (rule "andLeft" (formula "11")) (rule "andLeft" (formula "11")) @@ -3375,7 +5570,7 @@ (rule "times_zero_1" (formula "21") (term "1,0,0")) (rule "add_zero_right" (formula "21") (term "0,0")) (rule "leq_literals" (formula "21") (term "0")) - (builtin "One Step Simplification" (formula "21")) + (rule "concrete_impl_2" (formula "21") (ossStep)) (rule "true_left" (formula "21")) (rule "inEqSimp_ltToLeq" (formula "20") (term "0")) (rule "polySimp_mulComm0" (formula "20") (term "1,0,0,0")) @@ -3384,7 +5579,7 @@ (rule "times_zero_1" (formula "20") (term "1,0,0")) (rule "add_zero_right" (formula "20") (term "0,0")) (rule "leq_literals" (formula "20") (term "0")) - (builtin "One Step Simplification" (formula "20")) + (rule "concrete_impl_2" (formula "20") (ossStep)) (rule "true_left" (formula "20")) (rule "inEqSimp_ltToLeq" (formula "24") (term "0,0,0,0")) (rule "add_zero_right" (formula "24") (term "0,0,0,0,0")) @@ -3415,7 +5610,7 @@ (rule "applyEq" (formula "19") (term "0") (ifseqformula "18")) (rule "eqSymm" (formula "19")) (rule "replace_known_left" (formula "25") (term "1,0") (ifseqformula "19")) - (builtin "One Step Simplification" (formula "25")) + (rule "concrete_and_3" (formula "25") (term "0") (ossStep)) (rule "applyEq" (formula "10") (term "0,1,0") (ifseqformula "1")) (rule "applyEq" (formula "20") (term "1,3,0,1") (ifseqformula "1")) (rule "eqSymm" (formula "20") (term "1")) @@ -3428,7 +5623,7 @@ (rule "times_zero_1" (formula "20") (term "1,0,0")) (rule "add_zero_right" (formula "20") (term "0,0")) (rule "leq_literals" (formula "20") (term "0")) - (builtin "One Step Simplification" (formula "20")) + (rule "concrete_impl_2" (formula "20") (ossStep)) (rule "true_left" (formula "20")) (rule "applyEq" (formula "19") (term "3,0,1") (ifseqformula "1")) (rule "applyEqRigid" (formula "19") (term "1,0,0") (ifseqformula "1")) @@ -3437,7 +5632,7 @@ (rule "times_zero_1" (formula "19") (term "1,0,0")) (rule "add_zero_right" (formula "19") (term "0,0")) (rule "leq_literals" (formula "19") (term "0")) - (builtin "One Step Simplification" (formula "19")) + (rule "concrete_impl_2" (formula "19") (ossStep)) (rule "true_left" (formula "19")) (rule "applyEq" (formula "20") (term "1,0,0,1,0,0") (ifseqformula "17")) (rule "apply_eq_monomials" (formula "10") (term "1,0") (ifseqformula "18")) @@ -3494,7 +5689,7 @@ (rule "polySimp_mulLiterals" (formula "9") (term "0")) (rule "polySimp_elimOne" (formula "9") (term "0")) (rule "replace_known_left" (formula "21") (term "0") (ifseqformula "9")) - (builtin "One Step Simplification" (formula "21")) + (rule "concrete_and_1" (formula "21") (ossStep)) (rule "allRight" (formula "21") (inst "sk=f_0")) (rule "allRight" (formula "21") (inst "sk=o_0")) (rule "orRight" (formula "21")) diff --git a/keyext.slicing/src/test/java/org/key_project/slicing/EndToEndTests.java b/keyext.slicing/src/test/java/org/key_project/slicing/EndToEndTests.java index 80ac2bb5e84..62f588983d4 100644 --- a/keyext.slicing/src/test/java/org/key_project/slicing/EndToEndTests.java +++ b/keyext.slicing/src/test/java/org/key_project/slicing/EndToEndTests.java @@ -115,10 +115,10 @@ void sliceMultipleIterations() throws Exception { void sliceJavaProof() throws Exception { sliceProof( "../../../../../key.ui/examples/heap/verifyThis15_2_ParallelGcd/parallelGcd.proof", - 3238, 1336, true, false).dispose(); + 5398, 3280, true, false).dispose(); sliceProofOffline( "../../../../../key.ui/examples/heap/verifyThis15_2_ParallelGcd/parallelGcd.proof", - 3238, 1336, true, false).dispose(); + 5398, 3280, true, false).dispose(); } /** @@ -128,7 +128,7 @@ void sliceJavaProof() throws Exception { */ @Test void sliceCutExample() throws Exception { - sliceProof("cutExample.proof", 10, 7, true, false).dispose(); + sliceProof("cutExample.proof", 11, 8, true, false).dispose(); } /** @@ -149,8 +149,8 @@ void sliceAgathaWithOpenGoal() throws Exception { */ @Test void sliceWithOpenGoal() throws Exception { - sliceProof("openGoal1.proof", 10, 7, true, false).dispose(); - sliceProof("openGoal2.proof", 10, 7, true, false).dispose(); + sliceProof("openGoal1.proof", 11, 8, true, false).dispose(); + sliceProof("openGoal2.proof", 11, 8, true, false).dispose(); } /** @@ -162,18 +162,18 @@ void sliceWithOpenGoal() throws Exception { @Test void sliceIfThenElseSplit() throws Exception { // dependency analysis: instantly remove irrelevant steps from one branch - sliceProof("ifThenElseSplit.proof", 12, 6, true, false); + sliceProof("ifThenElseSplit.proof", 14, 7, true, false); // duplicate analysis: merge duplicated steps (one at a time) Pair iteration1 = sliceProofFullFilename( testCaseDirectory.resolve("ifThenElseSplit.proof"), - 12, 11, false, true, true); + 14, 13, false, true, true); var iteration2 = - sliceProofFullFilename(iteration1.second, 11, 10, false, true, true); + sliceProofFullFilename(iteration1.second, 13, 12, false, true, true); var iteration3 = - sliceProofFullFilename(iteration2.second, 10, 9, false, true, true); + sliceProofFullFilename(iteration2.second, 12, 11, false, true, true); var iteration4 = - sliceProofFullFilename(iteration3.second, 9, 8, false, true, true); + sliceProofFullFilename(iteration3.second, 11, 10, false, true, true); assertEquals("w TRUE", iteration4.first.findAny(x -> x.serialNr() == 6).getNodeInfo().getBranchLabel()); assertEquals("w FALSE", diff --git a/keyext.slicing/src/test/resources/testcase/cutExample.proof b/keyext.slicing/src/test/resources/testcase/cutExample.proof index e4f5a787a8f..978e5bb6af2 100644 --- a/keyext.slicing/src/test/resources/testcase/cutExample.proof +++ b/keyext.slicing/src/test/resources/testcase/cutExample.proof @@ -1,46 +1,79 @@ \profile "Java Profile"; -\settings { -"#Proof-Settings-Config-File -#Sat May 28 10:40:30 CEST 2022 -[Labels]UseOriginLabels=true -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=JavaCard-JavaCard\\:off , Strings-Strings\\:on , assertions-assertions\\:safe , bigint-bigint\\:on , floatRules-floatRules\\:strictfpOnly , initialisation-initialisation\\:disableStaticInitialisation , intRules-intRules\\:arithmeticSemanticsIgnoringOF , integerSimplificationRules-integerSimplificationRules\\:full , javaLoopTreatment-javaLoopTreatment\\:efficient , mergeGenerateIsWeakeningGoal-mergeGenerateIsWeakeningGoal\\:off , methodExpansion-methodExpansion\\:modularOnly , modelFields-modelFields\\:treatAsAxiom , moreSeqRules-moreSeqRules\\:off , permissions-permissions\\:off , programRules-programRules\\:Java , reach-reach\\:on , runtimeExceptions-runtimeExceptions\\:ban , sequences-sequences\\:on , wdChecks-wdChecks\\:off , wdOperator-wdOperator\\:L -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_SCOPE_INV_TACLET -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=10000 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_DEFAULT -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_DELAYED -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]MPS_OPTIONS_KEY=MPS_MERGE -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_ON -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT_INTERNAL -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]OSS_OPTIONS_KEY=OSS_ON -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} +\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_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "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" + } + } + } \sorts { s; @@ -52,16 +85,16 @@ } \problem { (p -> q) -> !q -> !p - } \proof { (keyLog "0" (keyUser "arne" ) (keyVersion "894ab5fc5d")) +(keyLog "1" (keyUser "daniel" ) (keyVersion "7a6dafd97c2d6d8520b96915668a1631c9c05aed")) (autoModeTime "40") (branch "dummy ID" -(rule "cut" (inst "cutFormula=true<>") (userinteraction)) +(rule "cut" (newnames "heapAtPre,savedHeapAtPre,arg0AtPre,arg1AtPre,heapAtPre,savedHeapAtPre,arg0AtPre,arg1AtPre,heapAtPre,savedHeapAtPre,arg0AtPre,heapAtPre,savedHeapAtPre,vAtPre") (inst "cutFormula=true<>") (userinteraction)) (branch "CUT: true TRUE" (rule "true_left" (formula "1")) (rule "impRight" (formula "1")) @@ -69,7 +102,8 @@ (rule "notRight" (formula "3")) (rule "notLeft" (formula "2")) (rule "replace_known_left" (formula "2") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "3"))) + (rule "replace_known_right" (formula "2") (term "1") (ifseqformula "3") (ossStep)) + (rule "concrete_impl_1" (formula "2") (ossStep)) (rule "closeFalse" (formula "2")) ) (branch "CUT: true FALSE" diff --git a/keyext.slicing/src/test/resources/testcase/ifThenElseSplit.proof b/keyext.slicing/src/test/resources/testcase/ifThenElseSplit.proof index f65c5e4838b..93ee76cc8f2 100644 --- a/keyext.slicing/src/test/resources/testcase/ifThenElseSplit.proof +++ b/keyext.slicing/src/test/resources/testcase/ifThenElseSplit.proof @@ -1,51 +1,83 @@ \profile "Java Profile"; -\settings { -"#Proof-Settings-Config-File -#Fri Jun 03 16:46:59 CEST 2022 -[NewSMT]NoTypeHierarchy=false -[Labels]UseOriginLabels=true -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[NewSMT]Presburger=false -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=JavaCard-JavaCard\\:on , Strings-Strings\\:on , assertions-assertions\\:on , bigint-bigint\\:on , floatRules-floatRules\\:strictfpOnly , initialisation-initialisation\\:disableStaticInitialisation , intRules-intRules\\:arithmeticSemanticsIgnoringOF , integerSimplificationRules-integerSimplificationRules\\:full , javaLoopTreatment-javaLoopTreatment\\:efficient , mergeGenerateIsWeakeningGoal-mergeGenerateIsWeakeningGoal\\:off , methodExpansion-methodExpansion\\:modularOnly , modelFields-modelFields\\:showSatisfiability , moreSeqRules-moreSeqRules\\:on , permissions-permissions\\:off , programRules-programRules\\:Java , reach-reach\\:on , runtimeExceptions-runtimeExceptions\\:ban , sequences-sequences\\:on , wdChecks-wdChecks\\:off , wdOperator-wdOperator\\:L -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_SCOPE_INV_TACLET -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_NONE -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=10000 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_DEFAULT -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_FREE -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]MPS_OPTIONS_KEY=MPS_MERGE -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_OFF -[SMTSettings]useUninterpretedMultiplication=true -[NewSMT]sqrtSMTTranslation=SMT -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT_INTERNAL -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[NewSMT]identifier=OPEN -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]OSS_OPTIONS_KEY=OSS_ON -[NewSMT]Axiomatisations=false -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} +\settings // Proof-Settings-Config-File +{ + "Choice" : { + "JavaCard" : "JavaCard:on", + "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:on", + "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" : { + "Axiomatisations" : "false", + "NoTypeHierarchy" : "false", + "Presburger" : "false", + "identifier" : "OPEN", + "sqrtSMTTranslation" : "SMT" + }, + "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", + "LOOP_OPTIONS_KEY" : "LOOP_SCOPE_INV_TACLET", + "METHOD_OPTIONS_KEY" : "METHOD_CONTRACT", + "MPS_OPTIONS_KEY" : "MPS_MERGE", + "NON_LIN_ARITH_OPTIONS_KEY" : "NON_LIN_ARITH_NONE", + "OSS_OPTIONS_KEY" : "OSS_ON", + "QUANTIFIERS_OPTIONS_KEY" : "QUANTIFIERS_NON_SPLITTING_WITH_PROGS", + "QUERYAXIOM_OPTIONS_KEY" : "QUERYAXIOM_ON", + "QUERY_NEW_OPTIONS_KEY" : "QUERY_OFF", + "SPLITTING_OPTIONS_KEY" : "SPLITTING_DELAYED", + "STOPMODE_OPTIONS_KEY" : "STOPMODE_DEFAULT", + "SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER", + "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY" : "SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF", + "USER_TACLETS_OPTIONS_KEY1" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY2" : "USER_TACLETS_OFF", + "USER_TACLETS_OPTIONS_KEY3" : "USER_TACLETS_OFF", + "VBT_PHASE" : "VBT_SYM_EX" + } + } + } \sorts { s; @@ -60,29 +92,31 @@ } \problem { (p & (p -> q) -> q) | \if (w) \then (u) \else (v) - } \proof { (keyLog "0" (keyUser "arne" ) (keyVersion "66e163adc6")) +(keyLog "1" (keyUser "daniel" ) (keyVersion "7a6dafd97c2d6d8520b96915668a1631c9c05aed")) (autoModeTime "11") (branch "dummy ID" -(rule "orRight" (formula "1") (userinteraction)) +(rule "orRight" (formula "1") (newnames "heapAtPre,savedHeapAtPre,arg0AtPre,arg1AtPre,heapAtPre,savedHeapAtPre,arg0AtPre,arg1AtPre,heapAtPre,savedHeapAtPre,arg0AtPre,heapAtPre,savedHeapAtPre,vAtPre") (userinteraction)) (rule "ifthenelse_split_for" (formula "2") (userinteraction)) (branch "w TRUE" (rule "impRight" (formula "2")) (rule "andLeft" (formula "1")) (rule "replace_known_left" (formula "2") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "4"))) + (rule "replace_known_right" (formula "2") (term "1") (ifseqformula "4") (ossStep)) + (rule "concrete_impl_1" (formula "2") (ossStep)) (rule "closeFalse" (formula "2")) ) (branch "w FALSE" (rule "impRight" (formula "1")) (rule "andLeft" (formula "1")) (rule "replace_known_left" (formula "2") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "3"))) + (rule "replace_known_right" (formula "2") (term "1") (ifseqformula "3") (ossStep)) + (rule "concrete_impl_1" (formula "2") (ossStep)) (rule "closeFalse" (formula "2")) ) ) diff --git a/keyext.slicing/src/test/resources/testcase/openGoal1.proof b/keyext.slicing/src/test/resources/testcase/openGoal1.proof index 20e61569885..4b0c55d2346 100644 --- a/keyext.slicing/src/test/resources/testcase/openGoal1.proof +++ b/keyext.slicing/src/test/resources/testcase/openGoal1.proof @@ -1,46 +1,79 @@ \profile "Java Profile"; -\settings { -"#Proof-Settings-Config-File -#Thu Nov 17 14:54:44 CET 2022 -[Labels]UseOriginLabels=true -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=JavaCard-JavaCard\\:off , Strings-Strings\\:on , assertions-assertions\\:safe , bigint-bigint\\:on , floatRules-floatRules\\:strictfpOnly , initialisation-initialisation\\:disableStaticInitialisation , intRules-intRules\\:arithmeticSemanticsIgnoringOF , integerSimplificationRules-integerSimplificationRules\\:full , javaLoopTreatment-javaLoopTreatment\\:efficient , mergeGenerateIsWeakeningGoal-mergeGenerateIsWeakeningGoal\\:off , methodExpansion-methodExpansion\\:modularOnly , modelFields-modelFields\\:treatAsAxiom , moreSeqRules-moreSeqRules\\:off , permissions-permissions\\:off , programRules-programRules\\:Java , reach-reach\\:on , runtimeExceptions-runtimeExceptions\\:ban , sequences-sequences\\:on , wdChecks-wdChecks\\:off , wdOperator-wdOperator\\:L -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_SCOPE_INV_TACLET -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=10000 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_DEFAULT -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_DELAYED -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]MPS_OPTIONS_KEY=MPS_MERGE -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_ON -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT_INTERNAL -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]OSS_OPTIONS_KEY=OSS_ON -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} +\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_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "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" + } + } + } \sorts { s; @@ -52,17 +85,17 @@ } \problem { (p -> q) -> !q -> !p - } \proof { (keyLog "0" (keyUser "arne" ) (keyVersion "894ab5fc5d")) (keyLog "1" (keyUser "arne" ) (keyVersion "b5d935f2b8d278fe4d36de1009a6a84b62a861b3")) +(keyLog "2" (keyUser "daniel" ) (keyVersion "7a6dafd97c2d6d8520b96915668a1631c9c05aed")) (autoModeTime "40") (branch "dummy ID" -(rule "cut" (inst "cutFormula=true<>") (userinteraction)) +(rule "cut" (newnames "heapAtPre,savedHeapAtPre,arg0AtPre,arg1AtPre,heapAtPre,savedHeapAtPre,arg0AtPre,arg1AtPre,heapAtPre,savedHeapAtPre,arg0AtPre,heapAtPre,savedHeapAtPre,vAtPre") (inst "cutFormula=true<>") (userinteraction)) (branch "CUT: true TRUE" (rule "true_left" (formula "1")) (rule "impRight" (formula "1")) @@ -70,11 +103,12 @@ (rule "notRight" (formula "3")) (rule "notLeft" (formula "2")) (rule "replace_known_left" (formula "2") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "3"))) + (rule "replace_known_right" (formula "2") (term "1") (ifseqformula "3") (ossStep)) + (rule "concrete_impl_1" (formula "2") (ossStep)) (rule "closeFalse" (formula "2")) ) (branch "CUT: true FALSE" - (opengoal "(p -> q) -> !q -> !p ") + (opengoal "==> true<>, (p -> q) -> !q -> !p") ) ) } diff --git a/keyext.slicing/src/test/resources/testcase/openGoal2.proof b/keyext.slicing/src/test/resources/testcase/openGoal2.proof index 31d4af21cf8..49e32ed23e1 100644 --- a/keyext.slicing/src/test/resources/testcase/openGoal2.proof +++ b/keyext.slicing/src/test/resources/testcase/openGoal2.proof @@ -1,46 +1,79 @@ \profile "Java Profile"; -\settings { -"#Proof-Settings-Config-File -#Thu Nov 17 14:55:18 CET 2022 -[Labels]UseOriginLabels=true -[StrategyProperty]QUERYAXIOM_OPTIONS_KEY=QUERYAXIOM_ON -[SMTSettings]invariantForall=false -[Strategy]ActiveStrategy=JavaCardDLStrategy -[StrategyProperty]USER_TACLETS_OPTIONS_KEY1=USER_TACLETS_OFF -[StrategyProperty]QUANTIFIERS_OPTIONS_KEY=QUANTIFIERS_NON_SPLITTING_WITH_PROGS -[StrategyProperty]USER_TACLETS_OPTIONS_KEY2=USER_TACLETS_OFF -[Choice]DefaultChoices=JavaCard-JavaCard\\:off , Strings-Strings\\:on , assertions-assertions\\:safe , bigint-bigint\\:on , floatRules-floatRules\\:strictfpOnly , initialisation-initialisation\\:disableStaticInitialisation , intRules-intRules\\:arithmeticSemanticsIgnoringOF , integerSimplificationRules-integerSimplificationRules\\:full , javaLoopTreatment-javaLoopTreatment\\:efficient , mergeGenerateIsWeakeningGoal-mergeGenerateIsWeakeningGoal\\:off , methodExpansion-methodExpansion\\:modularOnly , modelFields-modelFields\\:treatAsAxiom , moreSeqRules-moreSeqRules\\:off , permissions-permissions\\:off , programRules-programRules\\:Java , reach-reach\\:on , runtimeExceptions-runtimeExceptions\\:ban , sequences-sequences\\:on , wdChecks-wdChecks\\:off , wdOperator-wdOperator\\:L -[StrategyProperty]LOOP_OPTIONS_KEY=LOOP_SCOPE_INV_TACLET -[StrategyProperty]INF_FLOW_CHECK_PROPERTY=INF_FLOW_CHECK_FALSE -[SMTSettings]UseBuiltUniqueness=false -[SMTSettings]explicitTypeHierarchy=false -[SMTSettings]instantiateHierarchyAssumptions=true -[StrategyProperty]NON_LIN_ARITH_OPTIONS_KEY=NON_LIN_ARITH_DEF_OPS -[SMTSettings]SelectedTaclets= -[StrategyProperty]DEP_OPTIONS_KEY=DEP_ON -[StrategyProperty]AUTO_INDUCTION_OPTIONS_KEY=AUTO_INDUCTION_OFF -[Strategy]MaximumNumberOfAutomaticApplications=10000 -[StrategyProperty]STOPMODE_OPTIONS_KEY=STOPMODE_DEFAULT -[StrategyProperty]CLASS_AXIOM_OPTIONS_KEY=CLASS_AXIOM_DELAYED -[SMTSettings]useConstantsForBigOrSmallIntegers=true -[StrategyProperty]MPS_OPTIONS_KEY=MPS_MERGE -[StrategyProperty]SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OPTIONS_KEY=SYMBOLIC_EXECUTION_NON_EXECUTION_BRANCH_HIDING_OFF -[Strategy]Timeout=-1 -[StrategyProperty]SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY=SYMBOLIC_EXECUTION_ALIAS_CHECK_NEVER -[StrategyProperty]QUERY_NEW_OPTIONS_KEY=QUERY_ON -[SMTSettings]useUninterpretedMultiplication=true -[StrategyProperty]BLOCK_OPTIONS_KEY=BLOCK_CONTRACT_INTERNAL -[StrategyProperty]METHOD_OPTIONS_KEY=METHOD_CONTRACT -[StrategyProperty]USER_TACLETS_OPTIONS_KEY3=USER_TACLETS_OFF -[SMTSettings]maxGenericSorts=2 -[StrategyProperty]OSS_OPTIONS_KEY=OSS_ON -[StrategyProperty]SPLITTING_OPTIONS_KEY=SPLITTING_DELAYED -[SMTSettings]integersMinimum=-2147483645 -[StrategyProperty]VBT_PHASE=VBT_SYM_EX -[SMTSettings]integersMaximum=2147483645 -" -} +\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_DELAYED", + "DEP_OPTIONS_KEY" : "DEP_ON", + "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" + } + } + } \sorts { s; @@ -52,17 +85,17 @@ } \problem { (p -> q) -> !q -> !p - } \proof { (keyLog "0" (keyUser "arne" ) (keyVersion "894ab5fc5d")) (keyLog "1" (keyUser "arne" ) (keyVersion "b5d935f2b8d278fe4d36de1009a6a84b62a861b3")) +(keyLog "2" (keyUser "daniel" ) (keyVersion "7a6dafd97c2d6d8520b96915668a1631c9c05aed")) (autoModeTime "40") (branch "dummy ID" -(rule "cut" (inst "cutFormula=true<>") (userinteraction)) +(rule "cut" (newnames "heapAtPre,savedHeapAtPre,arg0AtPre,arg1AtPre,heapAtPre,savedHeapAtPre,arg0AtPre,arg1AtPre,heapAtPre,savedHeapAtPre,arg0AtPre,heapAtPre,savedHeapAtPre,vAtPre") (inst "cutFormula=true<>") (userinteraction)) (branch "CUT: true TRUE" (rule "true_left" (formula "1")) (rule "impRight" (formula "1")) @@ -70,8 +103,9 @@ (rule "notRight" (formula "3")) (rule "notLeft" (formula "2")) (rule "replace_known_left" (formula "2") (term "0") (ifseqformula "1")) - (builtin "One Step Simplification" (formula "2") (ifInst "" (formula "3"))) - (opengoal "(p -> q) -> !q -> !p ") + (rule "replace_known_right" (formula "2") (term "1") (ifseqformula "3") (ossStep)) + (rule "concrete_impl_1" (formula "2") (ossStep)) + (opengoal "p, false ==> q") ) (branch "CUT: true FALSE" (rule "closeTrue" (formula "1"))