Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
2f7858f
Modularize Feature strategies
Drodt Jul 3, 2025
a1a4dfc
Cleanup of IntegerStrategy
unp1 Jul 3, 2025
4c9a0ea
Factor out reasoning about strings in own strategy
unp1 Jul 3, 2025
66a7559
Moves FormulaTag manager to ncore (start of generalizing the indexing…
unp1 Jun 13, 2025
bc6a855
Move RuleIndex to ncore
unp1 Jun 13, 2025
c516fda
Cleanup TacletApp implementations
unp1 Jun 13, 2025
1492521
Minor cleanup and nullness annotations
unp1 Jun 13, 2025
7e70c11
Simplify "union" logic in SVInstantiations
unp1 Jun 13, 2025
1e357fa
Nullness and cleanup of code
unp1 Jun 13, 2025
07a92f6
Renaming from ifInstantiation to assumesFormulaInstantiation
unp1 Jun 13, 2025
0c14224
Avoid duplicate check of equal sv instantiations
unp1 Jun 13, 2025
0e8be5e
Rewrite recursion to iterative solution (in this case the intend is c…
unp1 Jun 13, 2025
5baa666
Nullness fixes and removal of unnecessary casts
unp1 Jun 13, 2025
48c4621
Nullness annotations
unp1 Jun 14, 2025
ee40d81
Added and updated comments
unp1 Jun 14, 2025
a65e4b0
Cleanup TacletApp (and subclasses)
unp1 Jun 15, 2025
a79aba3
Move RuleIndex to ncore
Drodt Jul 3, 2025
d9c79e6
Try to distribute responsibilities for features; this commit has errors
Drodt Jul 14, 2025
bd01ba2
Added javadoc
unp1 Jul 17, 2025
bf7249a
Intermediate commit: Move common features to modular strat; fix: inst…
Drodt Jul 17, 2025
4be0bf7
Clean up
Drodt Jul 17, 2025
231bc41
Modular UI Strategy panel
Drodt Jul 17, 2025
42c9d2a
Add responsibilities to StringStrategy
unp1 Jul 17, 2025
434e58f
Rename UI text
Drodt Jul 23, 2025
71bb95d
Add SymEx strat
Drodt Jul 24, 2025
219f1ce
Finish SymExStrategy
Drodt Jul 25, 2025
2fd419c
Split program rules from normal rule sets
Drodt Jul 25, 2025
9f3ae8b
Simplify
Drodt Jul 30, 2025
7988fb5
Modularize int assign rules
Drodt Jul 30, 2025
7c5f40f
Conflict resolution
Drodt Jul 30, 2025
b388496
Spotless
Drodt Aug 13, 2025
7e37d27
Add conflict resolution for int
Drodt Aug 13, 2025
ccf8c0e
Add FOL Strat
Drodt Aug 13, 2025
50ca4c5
Nullability
Drodt Aug 13, 2025
40a5c31
Remove LocSet handling from FOLStrat
Drodt Aug 13, 2025
dc08d1b
Add JFOLStrat
Drodt Aug 13, 2025
6139be0
Merge branch 'main' into modular-features
Drodt Aug 13, 2025
d24d116
Merge branch 'main' into modular-features
Drodt Sep 5, 2025
bd2caaf
Split up int rules; fix relative paths in JARs
Drodt Oct 16, 2025
ab5073a
Split sequence
Drodt Oct 16, 2025
f263c6a
Make paths relative by default; split more rules and headers
Drodt Oct 16, 2025
e017ced
Merge branch 'main' into modular-features
Drodt Oct 23, 2025
c0b1a62
Documentation
Drodt Oct 23, 2025
c32da1e
Add proof settings to float files; use correct strategy factory for m…
Drodt Oct 30, 2025
700f0ef
Remove printing
Drodt Oct 30, 2025
ba7fde6
Spotless
Drodt Oct 30, 2025
3e81c70
Add .key file ending to relative paths
Drodt Nov 6, 2025
9a66b0b
Merge branch 'main' into modular-features
Drodt Nov 6, 2025
1d1c228
Slight performance improvement
Drodt Nov 6, 2025
62f4da9
Simplify
Drodt Nov 7, 2025
cc0df1a
Fix OSS
Drodt Nov 7, 2025
9d8f11f
Simplify conflict resolution
Drodt Nov 7, 2025
dc90f0c
Handle built-in rules
Drodt Nov 19, 2025
9aba243
Fix ExprTests (relative paths)
Drodt Nov 19, 2025
393cee7
Regenerate taclet oracle
Drodt Nov 19, 2025
f3d3aa1
Fix OSS
Drodt Nov 19, 2025
1c2967d
Add missing Builtin rule to JavaDL strat
Drodt Nov 19, 2025
59f8432
Strategy Dispatcher API refactoring (work-in-progress; does not yet c…
unp1 Nov 20, 2025
54c9618
Fix reworked dispatch seprataion
Drodt Nov 20, 2025
f8d79b3
Fix performance regression (add fail fast in approval logic)
unp1 Nov 20, 2025
164065d
Minor cleanup and correction (approval feature and cost feature were …
unp1 Nov 21, 2025
ee753fe
added some comments
unp1 Nov 21, 2025
3429b98
Remove erroneous(?) third slash in URI
Drodt Dec 11, 2025
7884f76
Refactor ModularStrat; add Documentation
Drodt Dec 11, 2025
7ec46d4
Experiment w/ windows URIs
Drodt Dec 11, 2025
2de61fb
Add third slash to URI again
Drodt Dec 11, 2025
d889df5
fix windows path
NiklasHeidler Feb 12, 2026
17bceb4
Merge branch 'main' of github.com:Drodt/key into modular-features
unp1 Feb 12, 2026
20b74f6
Merge branch 'main' into modular-features
Drodt Feb 12, 2026
77abc51
Moved ComponentStrategy to ncore
unp1 Feb 12, 2026
fef3051
Fix non-null annotations
unp1 Feb 12, 2026
a0bb49a
Moved up some features and slightly generalized others
unp1 Feb 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ key/key.ui/examples/**/**.proof

# generated by the antlr plugin of IntelliJ
key.core/src/main/antlr4/gen/
*.tokens

scripts/tools/checkstyle/key_checks_incremental.xml
checkstyle-diff.txt
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,12 @@
import de.uka.ilkd.key.proof.Node;
import de.uka.ilkd.key.proof.Proof;
import de.uka.ilkd.key.strategy.AbstractFeatureStrategy;
import de.uka.ilkd.key.strategy.Strategy;

import org.key_project.logic.Name;
import org.key_project.prover.proof.ProofGoal;
import org.key_project.prover.rules.RuleApp;
import org.key_project.prover.sequent.PosInOccurrence;
import org.key_project.prover.strategy.Strategy;
import org.key_project.prover.strategy.costbased.MutableState;
import org.key_project.prover.strategy.costbased.NumberRuleAppCost;
import org.key_project.prover.strategy.costbased.RuleAppCost;
Expand Down Expand Up @@ -138,17 +138,9 @@ private String getAppRuleName(Node parent) {
return parentRuleName;
}


@Override
protected RuleAppCost instantiateApp(RuleApp app, PosInOccurrence pio, Goal goal,
MutableState mState) {
return computeCost(app, pio, goal, mState);
}

@Override
public boolean isStopAtFirstNonCloseableGoal() {
return false;
}
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,7 @@
import de.uka.ilkd.key.proof.Goal;
import de.uka.ilkd.key.proof.Proof;
import de.uka.ilkd.key.proof.init.ProofOblInput;
import de.uka.ilkd.key.strategy.JavaCardDLStrategyFactory;
import de.uka.ilkd.key.strategy.RuleAppCostCollector;
import de.uka.ilkd.key.strategy.Strategy;
import de.uka.ilkd.key.strategy.StrategyProperties;
import de.uka.ilkd.key.strategy.*;

import org.key_project.logic.Name;
import org.key_project.prover.proof.ProofGoal;
Expand Down Expand Up @@ -65,7 +62,7 @@ protected Set<String> getAdmittedRuleNames() {
}

@Override
protected Strategy<@NonNull Goal> createStrategy(Proof proof,
protected org.key_project.prover.strategy.Strategy<@NonNull Goal> createStrategy(Proof proof,
PosInOccurrence posInOcc) {
return new SelfCompExpansionStrategy(getAdmittedRuleNames());
}
Expand Down Expand Up @@ -113,7 +110,7 @@ protected boolean allowOSS() {
* This strategy accepts all rule apps for which the rule name is in the admitted set or has
* INF_FLOW_UNFOLD_PREFIX as a prefix and rejects everything else.
*/
private class SelfCompExpansionStrategy implements Strategy<Goal> {
private class SelfCompExpansionStrategy implements JavaStrategy {

private final Name NAME = new Name(
SelfcompositionStateExpansionMacro.SelfCompExpansionStrategy.class.getSimpleName());
Expand All @@ -136,10 +133,10 @@ public Name name() {
String name = ruleApp.rule().name().toString();
if ((admittedRuleNames.contains(name) || name.startsWith(INF_FLOW_UNFOLD_PREFIX))
&& ruleApplicationInContextAllowed(ruleApp, pio, goal)) {
JavaCardDLStrategyFactory strategyFactory = new JavaCardDLStrategyFactory();
Strategy<@NonNull Goal> javaDlStrategy =
ModularJavaDLStrategyFactory strategyFactory = new ModularJavaDLStrategyFactory();
org.key_project.prover.strategy.Strategy<@NonNull Goal> dlStrategy =
strategyFactory.create(goal.proof(), new StrategyProperties());
RuleAppCost costs = javaDlStrategy.computeCost(ruleApp, pio, goal, mState);
RuleAppCost costs = dlStrategy.computeCost(ruleApp, pio, goal, mState);
if ("orLeft".equals(name)) {
costs = costs.add(NumberRuleAppCost.create(100));
}
Expand All @@ -157,7 +154,7 @@ public boolean isApprovedApp(RuleApp app, PosInOccurrence pio,

@Override
public void instantiateApp(RuleApp app, PosInOccurrence pio, Goal goal,
RuleAppCostCollector collector) {
org.key_project.prover.strategy.RuleAppCostCollector collector) {
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@
import de.uka.ilkd.key.proof.Goal;
import de.uka.ilkd.key.proof.Node;
import de.uka.ilkd.key.proof.Proof;
import de.uka.ilkd.key.strategy.RuleAppCostCollector;
import de.uka.ilkd.key.strategy.Strategy;
import de.uka.ilkd.key.strategy.JavaStrategy;

import org.key_project.logic.Name;
import org.key_project.prover.proof.ProofGoal;
import org.key_project.prover.rules.RuleApp;
import org.key_project.prover.sequent.PosInOccurrence;
import org.key_project.prover.strategy.RuleAppCostCollector;
import org.key_project.prover.strategy.costbased.MutableState;
import org.key_project.prover.strategy.costbased.NumberRuleAppCost;
import org.key_project.prover.strategy.costbased.RuleAppCost;
Expand Down Expand Up @@ -166,7 +166,7 @@ private String getAppRuleName(Node parent) {
* This strategy accepts all rule apps for which the rule name starts with a string in the
* admitted set and rejects everything else.
*/
protected class PropExpansionStrategy implements Strategy<Goal> {
protected class PropExpansionStrategy implements JavaStrategy {

private final Name NAME =
new Name(UseInformationFlowContractMacro.PropExpansionStrategy.class.getSimpleName());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
import de.uka.ilkd.key.logic.JTerm;
import de.uka.ilkd.key.logic.ProgramElementName;
import de.uka.ilkd.key.logic.TermBuilder;
import de.uka.ilkd.key.logic.TermServices;
import de.uka.ilkd.key.logic.label.ParameterlessTermLabel;
import de.uka.ilkd.key.logic.op.JFunction;
import de.uka.ilkd.key.logic.op.LocationVariable;
Expand All @@ -43,6 +42,7 @@
import de.uka.ilkd.key.speclang.BlockContract;
import de.uka.ilkd.key.util.MiscTools;

import org.key_project.logic.LogicServices;
import org.key_project.logic.Name;
import org.key_project.logic.op.Function;
import org.key_project.prover.sequent.PosInOccurrence;
Expand Down Expand Up @@ -101,7 +101,7 @@ private InfFlowBlockContractInternalRule() {

@Override
public BlockContractInternalBuiltInRuleApp<? extends BlockContractInternalRule> createApp(
PosInOccurrence occurrence, TermServices services) {
PosInOccurrence occurrence, LogicServices services) {
return new InfFlowBlockContractInternalBuiltInRuleApp(this, occurrence);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import de.uka.ilkd.key.speclang.LoopSpecification;
import de.uka.ilkd.key.util.MiscTools;

import org.key_project.logic.LogicServices;
import org.key_project.logic.Name;
import org.key_project.logic.Namespace;
import org.key_project.logic.op.Function;
Expand All @@ -58,8 +59,8 @@ public Name name() {

@Override
public InfFlowLoopInvariantBuiltInRuleApp createApp(PosInOccurrence pos,
TermServices services) {
return new InfFlowLoopInvariantBuiltInRuleApp(this, pos, services);
LogicServices services) {
return new InfFlowLoopInvariantBuiltInRuleApp(this, pos, (TermServices) services);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import de.uka.ilkd.key.java.Services;
import de.uka.ilkd.key.logic.JTerm;
import de.uka.ilkd.key.logic.TermBuilder;
import de.uka.ilkd.key.logic.TermServices;
import de.uka.ilkd.key.logic.op.*;
import de.uka.ilkd.key.proof.Goal;
import de.uka.ilkd.key.proof.mgt.ProofEnvironment;
Expand All @@ -20,6 +19,7 @@
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionSideProofUtil;
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionUtil;

import org.key_project.logic.LogicServices;
import org.key_project.logic.Name;
import org.key_project.logic.op.Function;
import org.key_project.prover.rules.RuleAbortException;
Expand Down Expand Up @@ -119,7 +119,7 @@ public boolean isApplicable(Goal goal, PosInOccurrence pio) {
* {@inheritDoc}
*/
@Override
public IBuiltInRuleApp createApp(PosInOccurrence pos, TermServices services) {
public IBuiltInRuleApp createApp(PosInOccurrence pos, LogicServices services) {
return new DefaultBuiltInRuleApp(this, pos);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,16 +8,15 @@
import de.uka.ilkd.key.java.Services;
import de.uka.ilkd.key.logic.JTerm;
import de.uka.ilkd.key.logic.TermBuilder;
import de.uka.ilkd.key.logic.TermServices;
import de.uka.ilkd.key.logic.op.*;
import de.uka.ilkd.key.proof.Goal;
import de.uka.ilkd.key.proof.mgt.ProofEnvironment;
import de.uka.ilkd.key.rule.BuiltInRule;
import de.uka.ilkd.key.rule.DefaultBuiltInRuleApp;
import de.uka.ilkd.key.rule.IBuiltInRuleApp;
import de.uka.ilkd.key.rule.QueryExpand;
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionSideProofUtil;

import org.key_project.logic.LogicServices;
import org.key_project.logic.Name;
import org.key_project.logic.op.Function;
import org.key_project.logic.sort.Sort;
Expand Down Expand Up @@ -150,7 +149,7 @@ public boolean isApplicable(Goal goal, PosInOccurrence pio) {

/**
* Checks if the query term is supported. The functionality is identical to
* {@link QueryExpand#isApplicable(Goal, PosInOccurrence)}.
* {@link BuiltInRule#isApplicable(org.key_project.prover.proof.ProofGoal, PosInOccurrence)}.
*
* @param goal The {@link Goal}.
* @param pmTerm The {@link JTerm} to with the query to check.
Expand Down Expand Up @@ -182,7 +181,7 @@ private boolean isApplicableQuery(Goal goal, JTerm pmTerm,
* {@inheritDoc}
*/
@Override
public IBuiltInRuleApp createApp(PosInOccurrence pos, TermServices services) {
public IBuiltInRuleApp createApp(PosInOccurrence pos, LogicServices services) {
return new DefaultBuiltInRuleApp(this, pos);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@
import org.jspecify.annotations.NonNull;

/**
* {@link Strategy} used to simplify {@link JTerm}s in side proofs.
* {@link JavaStrategy} used to simplify {@link JTerm}s in side proofs.
*
* @author Martin Hentschel
*/
public class SimplifyTermStrategy extends JavaCardDLStrategy {
/**
* The {@link Name} of the side proof {@link Strategy}.
* The {@link Name} of the side proof {@link JavaStrategy}.
*/
public static final Name name = new Name("Simplify Term Strategy");

Expand Down Expand Up @@ -100,7 +100,8 @@ public static class Factory implements StrategyFactory {
* {@inheritDoc}
*/
@Override
public Strategy<Goal> create(Proof proof, StrategyProperties sp) {
public org.key_project.prover.strategy.Strategy<Goal> create(Proof proof,
StrategyProperties sp) {
return new SimplifyTermStrategy(proof, sp);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,18 +5,16 @@

import java.util.ArrayList;

import de.uka.ilkd.key.logic.JTerm;
import de.uka.ilkd.key.proof.Goal;
import de.uka.ilkd.key.proof.Proof;
import de.uka.ilkd.key.strategy.JavaCardDLStrategy;
import de.uka.ilkd.key.strategy.Strategy;
import de.uka.ilkd.key.strategy.JavaStrategy;
import de.uka.ilkd.key.strategy.StrategyFactory;
import de.uka.ilkd.key.strategy.StrategyProperties;
import de.uka.ilkd.key.strategy.definition.IDefaultStrategyPropertiesFactory;
import de.uka.ilkd.key.strategy.definition.OneOfStrategyPropertyDefinition;
import de.uka.ilkd.key.strategy.definition.StrategyPropertyValueDefinition;
import de.uka.ilkd.key.strategy.definition.StrategySettingsDefinition;
import de.uka.ilkd.key.strategy.feature.*;
import de.uka.ilkd.key.strategy.feature.instantiator.OneOfCP;
import de.uka.ilkd.key.strategy.termProjection.FocusProjection;
import de.uka.ilkd.key.symbolic_execution.rule.ModalitySideProofRule;
Expand All @@ -28,23 +26,26 @@
import org.key_project.prover.proof.rulefilter.SetRuleFilter;
import org.key_project.prover.rules.RuleApp;
import org.key_project.prover.sequent.PosInOccurrence;
import org.key_project.prover.strategy.Strategy;
import org.key_project.prover.strategy.costbased.MutableState;
import org.key_project.prover.strategy.costbased.RuleAppCost;
import org.key_project.prover.strategy.costbased.TopRuleAppCost;
import org.key_project.prover.strategy.costbased.feature.BinaryFeature;
import org.key_project.prover.strategy.costbased.feature.ConditionalFeature;
import org.key_project.prover.strategy.costbased.feature.CountBranchFeature;
import org.key_project.prover.strategy.costbased.feature.Feature;
import org.key_project.prover.strategy.costbased.feature.RuleSetDispatchFeature;
import org.key_project.prover.strategy.costbased.feature.ScaleFeature;
import org.key_project.prover.strategy.costbased.termProjection.TermBuffer;

import org.jspecify.annotations.NonNull;

/**
* {@link Strategy} to use for symbolic execution.
* {@link JavaStrategy} to use for symbolic execution.
*/
public class SymbolicExecutionStrategy extends JavaCardDLStrategy {
/**
* The {@link Name} of the symbolic execution {@link Strategy}.
* The {@link Name} of the symbolic execution {@link JavaStrategy}.
*/
public static final Name name = new Name("Symbolic Execution Strategy");

Expand Down Expand Up @@ -85,7 +86,7 @@ private SymbolicExecutionStrategy(Proof proof, StrategyProperties sp) {
.equals(sp.get(StrategyProperties.SYMBOLIC_EXECUTION_ALIAS_CHECK_OPTIONS_KEY))) {
// Make sure that an immediately alias check is performed by doing cuts of objects to
// find out if they can be the same or not
RuleSetDispatchFeature instRsd = getInstantiationDispatcher();
RuleSetDispatchFeature instRsd = getDispatcher(StrategyAspect.Instantiation);
enableInstantiate();
final TermBuffer<Goal> buffer = new TermBuffer<>();
Feature originalCut = instRsd.get(getHeuristic("cut"));
Expand All @@ -106,7 +107,7 @@ private SymbolicExecutionStrategy(Proof proof, StrategyProperties sp) {
* {@inheritDoc}
*/
@Override
protected Feature setupApprovalF() {
protected @NonNull Feature setupApprovalF() {
Feature result = super.setupApprovalF();
// Make sure that cuts are only applied if the cut term is not already part of the sequent.
// This check is performed exactly before the rule is applied because the sequent might has
Expand All @@ -122,17 +123,17 @@ protected Feature setupApprovalF() {
* {@inheritDoc}
*/
@Override
protected Feature setupGlobalF(Feature dispatcher) {
protected @NonNull Feature setupGlobalF(@NonNull Feature dispatcher) {
Feature globalF = super.setupGlobalF(dispatcher);
// Make sure that modalities without symbolic execution label are executed first because
// they might forbid rule application on modalities with symbolic execution label (see loop
// body branches)
globalF = add(globalF, ifZero(not(new BinaryFeature() {
@Override
protected <Goal extends ProofGoal<@NonNull Goal>> boolean filter(RuleApp app,
PosInOccurrence pos, Goal goal, MutableState mState) {
protected <GOAL extends ProofGoal<@NonNull GOAL>> boolean filter(RuleApp app,
PosInOccurrence pos, GOAL goal, MutableState mState) {
return pos != null
&& SymbolicExecutionUtil.hasSymbolicExecutionLabel((JTerm) pos.subTerm());
&& SymbolicExecutionUtil.hasSymbolicExecutionLabel(pos.subTerm());
}
}), longConst(-3000)));
// Make sure that the modality which executes a loop body is preferred against the
Expand All @@ -141,9 +142,9 @@ protected Feature setupGlobalF(Feature dispatcher) {
add(globalF,
ifZero(add(new Feature() {
@Override
public <Goal extends ProofGoal<@NonNull Goal>> RuleAppCost computeCost(
public <GOAL extends ProofGoal<@NonNull GOAL>> RuleAppCost computeCost(
RuleApp app, PosInOccurrence pos,
Goal goal, MutableState mState) {
GOAL goal, MutableState mState) {
return pos != null ? cost(0) : TopRuleAppCost.INSTANCE;
}
},
Expand Down Expand Up @@ -302,7 +303,7 @@ public static class Factory implements StrategyFactory {
* {@inheritDoc}
*/
@Override
public StrategySettingsDefinition getSettingsDefinition() {
public @NonNull StrategySettingsDefinition getSettingsDefinition() {
// Properties
OneOfStrategyPropertyDefinition methodTreatment = new OneOfStrategyPropertyDefinition(
StrategyProperties.METHOD_OPTIONS_KEY, "Method Treatment",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@
import de.uka.ilkd.key.settings.StrategySettings;
import de.uka.ilkd.key.speclang.Contract;
import de.uka.ilkd.key.speclang.OperationContract;
import de.uka.ilkd.key.strategy.JavaCardDLStrategyFactory;
import de.uka.ilkd.key.strategy.Strategy;
import de.uka.ilkd.key.strategy.JavaStrategy;
import de.uka.ilkd.key.strategy.ModularJavaDLStrategyFactory;
import de.uka.ilkd.key.strategy.StrategyProperties;
import de.uka.ilkd.key.symbolic_execution.ExecutionVariableExtractor;
import de.uka.ilkd.key.symbolic_execution.SymbolicExecutionTreeBuilder;
Expand Down Expand Up @@ -2562,7 +2562,7 @@ private static JTerm computeTacletAppBranchCondition(Node parent, Node node, boo
boolean improveReadability) throws ProofInputException {
if (!(parent.getAppliedRuleApp() instanceof TacletApp app)) {
throw new ProofInputException(
"Only TacletApp is allowed in branch computation but rule \""
"Only ITacletApp is allowed in branch computation but rule \""
+ parent.getAppliedRuleApp() + "\" was found.");
}
Services services = node.proof().getServices();
Expand Down Expand Up @@ -4312,7 +4312,7 @@ private static ImmutableArray<JTerm> extractValueFromUpdate(

/**
* Initializes the {@link Proof} of the given {@link SymbolicExecutionTreeBuilder} so that the
* correct {@link Strategy} is used.
* correct {@link JavaStrategy} is used.
*
* @param builder The {@link SymbolicExecutionTreeBuilder} to initialize.
*/
Expand All @@ -4325,7 +4325,7 @@ public static void initializeStrategy(SymbolicExecutionTreeBuilder builder) {
new SymbolicExecutionStrategy.Factory().create(proof, strategyProperties));
} else {
proof.setActiveStrategy(
new JavaCardDLStrategyFactory().create(proof, strategyProperties));
new ModularJavaDLStrategyFactory().create(proof, strategyProperties));
}
}

Expand Down
Loading
Loading