Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Generalizing Logic Data Structures #3357

Merged
merged 89 commits into from
Mar 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
2f23189
Initial commit for refactoring KeY towards modular support for target…
unp1 Sep 19, 2023
e847ac2
Add LanguageElement
Drodt Sep 19, 2023
7047a07
Add dependency on ncore project to core project
Drodt Sep 19, 2023
75957e2
Turn key.util into module
Drodt Sep 19, 2023
5500c8e
Start work on ops and sorts
Drodt Sep 19, 2023
c7ae601
Spotless fixes
unp1 Sep 19, 2023
772e5e1
Spotless
Drodt Sep 19, 2023
30b728a
removed redundant classes
unp1 Sep 20, 2023
f097bf6
Made Sort generic to enforce method signature specialization
Drodt Sep 25, 2023
710f362
Move interfaces to ncore
Drodt Oct 2, 2023
dd736ab
Fix sort method
Drodt Oct 2, 2023
2593a98
Removed unnecessary term dependency from Operator
unp1 Oct 2, 2023
ac9fbac
Cleaned up style using spotless
unp1 Oct 2, 2023
920d066
Reorganized inheritance structure to minimize parallel (and unrelated…
unp1 Oct 2, 2023
fd4d5fd
Spotless fixes
unp1 Oct 2, 2023
eb799e0
Added some comments to JavaDLTheory
unp1 Oct 2, 2023
345e8c8
Some fixes to type converters widening method
unp1 Oct 2, 2023
2a94ab6
Minor cleanup
unp1 Oct 2, 2023
ae9086b
Added some tests for Name
unp1 Oct 3, 2023
4a9adb8
Switch to jSpecify.org nullable annotations
unp1 Oct 3, 2023
ae176e8
Fixed broken test
unp1 Oct 3, 2023
dc1d314
Merge Sort and AbstractSort in JavaDL core
unp1 Oct 2, 2023
5c3e7f0
Spotless checks
Drodt Oct 4, 2023
b03f091
Start design doc
Drodt Oct 4, 2023
bcb7119
Move methods to ncore.Term
Drodt Oct 4, 2023
6bdc8d9
Add missing generics
Drodt Oct 4, 2023
6b9a40f
Revert generics for now
Drodt Oct 4, 2023
c5b3a95
Move visitors to ncore
Drodt Oct 4, 2023
1bab687
Spotless checks
Drodt Oct 4, 2023
171e0ca
Reduce usage of generics sorts and the Term interface of ncore in Jav…
unp1 Oct 4, 2023
e857a6e
removed unnecessary casts introduce by previous commit
unp1 Oct 4, 2023
842b5c8
spotless cleanup
unp1 Oct 4, 2023
a579a93
REmoved remianing redundant casts
unp1 Oct 4, 2023
4985737
Reduce number of generic type parameters in visitor
unp1 Oct 4, 2023
d741298
Prepare Modality to contain the program
Drodt Oct 6, 2023
58de797
Fix faulty comparisons to modality
Drodt Oct 6, 2023
50a98d5
Cleanup
Drodt Oct 6, 2023
16dab48
Attempt to fix term construction
Drodt Oct 6, 2023
038bbe1
Fix Modality matching
Drodt Oct 16, 2023
893c347
cleanup
Drodt Oct 16, 2023
d9c638a
Move Modality kinds and clean up
Drodt Oct 16, 2023
18a201c
Fix string output
Drodt Oct 16, 2023
65404bb
Several fixes. Temporarily moved modalities caching into static HashMap
unp1 Oct 21, 2023
87b0bfc
Revert "TacletAppIndex lazy delta updates"
unp1 Oct 23, 2023
eb733c0
Fix bug in program renaming causing wrong term to be created
unp1 Oct 23, 2023
a68254a
THIS COMMIT must not be merged. For debugging add consistency check t…
unp1 Oct 23, 2023
9e29f44
Fix another bug in strategies
unp1 Oct 23, 2023
05fdf78
SpotlessApply
Drodt Oct 26, 2023
9efc86d
Fix ModKind#toString()
Drodt Oct 26, 2023
61a6236
Quick fix for Proof reloading
Drodt Oct 26, 2023
682d31e
Some fixes
unp1 Oct 26, 2023
b41a089
Move modality cache clearing to ProblemInitializer
Drodt Oct 27, 2023
c0731d3
SpotlessApply
Drodt Oct 27, 2023
ed0e8d7
Typos and make operators final
Drodt Oct 30, 2023
9bad43c
Typos
Drodt Oct 30, 2023
e2d70a9
Move modality cache to Services
Drodt Oct 30, 2023
f3dda24
Fix git rebase issues
Drodt Oct 30, 2023
735e07c
Update design doc
Drodt Nov 3, 2023
43b7443
Move modality cache to Modality
Drodt Nov 6, 2023
aeda6cc
Move Sort#extends(Services) to ncore
Drodt Nov 6, 2023
2e7e062
Move HasOrigin to ncore; simplify core.sort
Drodt Nov 6, 2023
80f7626
Simply Modality
Drodt Nov 6, 2023
350ed1a
Use interning for name equality
Drodt Nov 6, 2023
f882b6e
WIP: Identified ncore and javadl AbstractOperator
unp1 Nov 13, 2023
fc74cd7
REmoved some generic sort arguments from operators
unp1 Nov 13, 2023
51e0aba
Further cleanup of generic sorts and removal of JavaDL specific Sorte…
unp1 Nov 13, 2023
7425251
Remove generic from term class
unp1 Nov 13, 2023
2a13e01
Spotless fixes
unp1 Nov 13, 2023
cd8d64d
Remove generic type from ParseableVariable and co
unp1 Nov 13, 2023
44e9ecc
Cleanup Visitor inheritance of Term visitors
unp1 Nov 13, 2023
20e750c
Fix rebase and run spotless
Drodt Nov 14, 2023
70e846f
Fix rebase
Drodt Nov 17, 2023
5b1b8dd
Add Function to ncore; add Modifier
Drodt Nov 20, 2023
abe0f28
Spotless
Drodt Nov 20, 2023
7f8cb01
Fix(?) information flow tests
Drodt Nov 20, 2023
9cc7edb
Spotless
Drodt Nov 21, 2023
206d428
Fix renamer
Drodt Nov 21, 2023
58f4b96
Remove JavaBlock from TermFactory
Drodt Nov 21, 2023
90a38e7
Rename JavaDLFunction -> JFunction
Drodt Dec 8, 2023
479a6a6
Fix NPE for some taclet input
Drodt Dec 12, 2023
0e510b1
Use static operator comparison
Drodt Jan 8, 2024
fd4f2e8
Fix label retainement on terms
unp1 Jan 15, 2024
9d475ee
Merge branch 'main' into extract-new-core
Drodt Jan 29, 2024
68eea60
Spotless
Drodt Jan 29, 2024
e3a260f
Fix merge errors
Drodt Jan 29, 2024
9a8e456
Fix merge import errors
Drodt Jan 30, 2024
111ada1
Document ncore
Drodt Feb 6, 2024
92e6060
Merge branch 'main' into extract-new-core
Drodt Mar 5, 2024
1256e74
Merge main into extraxt-new-core
Drodt Mar 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,7 @@

import de.uka.ilkd.key.java.Services;
import de.uka.ilkd.key.java.abstraction.KeYJavaType;
import de.uka.ilkd.key.logic.Name;
import de.uka.ilkd.key.logic.op.IObserverFunction;
import de.uka.ilkd.key.logic.sort.Sort;
import de.uka.ilkd.key.proof.Node;
import de.uka.ilkd.key.proof.init.ProofOblInput;
import de.uka.ilkd.key.proof_references.reference.DefaultProofReference;
Expand All @@ -21,10 +19,12 @@
import de.uka.ilkd.key.speclang.ClassInvariant;
import de.uka.ilkd.key.speclang.PartialInvAxiom;
import de.uka.ilkd.key.util.MiscTools;
import de.uka.ilkd.key.util.Pair;

import org.key_project.logic.Name;
import org.key_project.logic.sort.Sort;
import org.key_project.util.collection.DefaultImmutableSet;
import org.key_project.util.collection.ImmutableSet;
import org.key_project.util.collection.Pair;

/**
* Extracts used {@link ClassAxiom} and {@link ClassInvariant}s.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import de.uka.ilkd.key.java.reference.MethodReference;
import de.uka.ilkd.key.java.reference.TypeRef;
import de.uka.ilkd.key.logic.JavaBlock;
import de.uka.ilkd.key.logic.Name;
import de.uka.ilkd.key.logic.PosInOccurrence;
import de.uka.ilkd.key.logic.ProgramElementName;
import de.uka.ilkd.key.logic.TermBuilder;
Expand All @@ -29,6 +28,7 @@
import de.uka.ilkd.key.rule.RuleApp;
import de.uka.ilkd.key.util.MiscTools;

import org.key_project.logic.Name;
import org.key_project.util.collection.ImmutableArray;
import org.key_project.util.collection.ImmutableSLList;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@
import java.util.Map.Entry;

import de.uka.ilkd.key.util.LinkedHashMap;
import de.uka.ilkd.key.util.Pair;

import org.key_project.util.collection.KeYCollections;
import org.key_project.util.collection.Pair;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import java.util.Set;

import de.uka.ilkd.key.java.Services;
import de.uka.ilkd.key.logic.Name;
import de.uka.ilkd.key.logic.PosInOccurrence;
import de.uka.ilkd.key.logic.Term;
import de.uka.ilkd.key.logic.label.BlockContractValidityTermLabel;
Expand All @@ -18,6 +17,7 @@
import de.uka.ilkd.key.rule.RuleApp;
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionUtil;

import org.key_project.logic.Name;
import org.key_project.util.collection.ImmutableList;
import org.key_project.util.collection.ImmutableSLList;
import org.key_project.util.java.CollectionUtil;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
import de.uka.ilkd.key.rule.merge.CloseAfterMerge;
import de.uka.ilkd.key.symbolic_execution.TruthValueTracingUtil;

import org.key_project.logic.Name;
import org.key_project.util.collection.ImmutableList;
import org.key_project.util.java.CollectionUtil;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import de.uka.ilkd.key.rule.TacletApp;
import de.uka.ilkd.key.symbolic_execution.TruthValueTracingUtil;

import org.key_project.logic.Name;
import org.key_project.util.collection.ImmutableList;
import org.key_project.util.java.CollectionUtil;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import java.util.Set;

import de.uka.ilkd.key.java.Services;
import de.uka.ilkd.key.logic.Name;
import de.uka.ilkd.key.logic.PosInOccurrence;
import de.uka.ilkd.key.logic.Term;
import de.uka.ilkd.key.logic.label.TermLabel;
Expand All @@ -16,6 +15,7 @@
import de.uka.ilkd.key.rule.WhileInvariantRule;
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionUtil;

import org.key_project.logic.Name;
import org.key_project.util.collection.ImmutableList;
import org.key_project.util.collection.ImmutableSLList;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@
import java.util.Set;

import de.uka.ilkd.key.java.Services;
import de.uka.ilkd.key.logic.Name;
import de.uka.ilkd.key.logic.PosInOccurrence;
import de.uka.ilkd.key.logic.Term;
import de.uka.ilkd.key.logic.label.TermLabel;
Expand All @@ -16,6 +15,7 @@
import de.uka.ilkd.key.rule.WhileInvariantRule;
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionUtil;

import org.key_project.logic.Name;
import org.key_project.util.collection.ImmutableList;
import org.key_project.util.collection.ImmutableSLList;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@
package de.uka.ilkd.key.rule.label;

import de.uka.ilkd.key.java.Services;
import de.uka.ilkd.key.logic.Name;
import de.uka.ilkd.key.logic.PosInOccurrence;
import de.uka.ilkd.key.logic.Term;
import de.uka.ilkd.key.logic.label.LabelCollection;
Expand All @@ -20,6 +19,7 @@
import de.uka.ilkd.key.rule.UseOperationContractRule;
import de.uka.ilkd.key.rule.WhileInvariantRule;

import org.key_project.logic.Name;
import org.key_project.util.collection.ImmutableList;
import org.key_project.util.collection.ImmutableSLList;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@
import java.util.Set;

import de.uka.ilkd.key.java.Services;
import de.uka.ilkd.key.logic.Name;
import de.uka.ilkd.key.logic.PosInOccurrence;
import de.uka.ilkd.key.logic.Term;
import de.uka.ilkd.key.logic.label.SymbolicExecutionTermLabel;
import de.uka.ilkd.key.logic.label.TermLabel;
import de.uka.ilkd.key.logic.label.TermLabelState;
import de.uka.ilkd.key.rule.*;

import org.key_project.logic.Name;
import org.key_project.util.collection.ImmutableList;
import org.key_project.util.collection.ImmutableSLList;
import org.key_project.util.java.CollectionUtil;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@

import de.uka.ilkd.key.java.Services;
import de.uka.ilkd.key.ldt.HeapLDT;
import de.uka.ilkd.key.ldt.JavaDLTheory;
import de.uka.ilkd.key.logic.*;
import de.uka.ilkd.key.logic.label.OriginTermLabel;
import de.uka.ilkd.key.logic.op.*;
import de.uka.ilkd.key.logic.sort.Sort;
import de.uka.ilkd.key.proof.Goal;
import de.uka.ilkd.key.proof.Node;
import de.uka.ilkd.key.proof.Proof;
Expand All @@ -25,6 +25,8 @@
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionSideProofUtil;
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionUtil;

import org.key_project.logic.Name;
import org.key_project.logic.sort.Sort;
import org.key_project.util.Strings;
import org.key_project.util.collection.ImmutableList;
import org.key_project.util.collection.ImmutableSLList;
Expand Down Expand Up @@ -567,9 +569,9 @@ protected Term createLocationPredicateAndTerm(
sorts[i] = arguments[i].sort();
}
// Create predicate which will be used in formulas to store the value interested in.
Function newPredicate =
new Function(new Name(getServices().getTermBuilder().newName("LayoutPredicate")),
Sort.FORMULA, sorts);
JFunction newPredicate =
new JFunction(new Name(getServices().getTermBuilder().newName("LayoutPredicate")),
JavaDLTheory.FORMULA, sorts);
// Create formula which contains the value interested in.
Term newTerm = getServices().getTermBuilder().func(newPredicate, arguments);
return newTerm;
Expand Down Expand Up @@ -788,12 +790,13 @@ public ExtractLocationParameter(Term arrayStartIndex, Term arrayEndIndex, Term p
OriginTermLabel.removeOriginLabels(arrayStartIndex, getServices());
this.arrayEndIndex = OriginTermLabel.removeOriginLabels(arrayEndIndex, getServices());
TermBuilder tb = getServices().getTermBuilder();
Function constantFunction = new Function(
JFunction constantFunction = new JFunction(
new Name(tb.newName(ExecutionAllArrayIndicesVariable.ARRAY_INDEX_CONSTANT_NAME)),
getServices().getTypeConverter().getIntegerLDT().targetSort());
this.arrayRangeConstant = tb.func(constantFunction);
Function notAValueFunction = new Function(
new Name(tb.newName(ExecutionAllArrayIndicesVariable.NOT_A_VALUE_NAME)), Sort.ANY);
JFunction notAValueFunction = new JFunction(
new Name(tb.newName(ExecutionAllArrayIndicesVariable.NOT_A_VALUE_NAME)),
JavaDLTheory.ANY);
this.notAValue = tb.func(notAValueFunction);
}

Expand Down Expand Up @@ -939,19 +942,19 @@ public Term createPreValueTerm() {
} else {
if (getServices().getJavaInfo().getArrayLength() == programVariable) {
// Special handling for length attribute of arrays
Function function =
JFunction function =
getServices().getTypeConverter().getHeapLDT().getLength();
return tb.func(function, createPreParentTerm());
} else {
Function function =
JFunction function =
getServices().getTypeConverter().getHeapLDT().getFieldSymbolForPV(
(LocationVariable) programVariable, getServices());
return tb.dot(programVariable.sort(), createPreParentTerm(), function);
}
}
} else {
if (programVariable.isStatic()) {
Function function = getServices().getTypeConverter().getHeapLDT()
JFunction function = getServices().getTypeConverter().getHeapLDT()
.getFieldSymbolForPV((LocationVariable) programVariable, getServices());
return tb.staticDot(programVariable.sort(), function);
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
import de.uka.ilkd.key.logic.Term;
import de.uka.ilkd.key.logic.op.IProgramMethod;
import de.uka.ilkd.key.logic.op.IProgramVariable;
import de.uka.ilkd.key.logic.sort.Sort;
import de.uka.ilkd.key.proof.Node;
import de.uka.ilkd.key.proof.NodeInfo;
import de.uka.ilkd.key.proof.Proof;
Expand All @@ -34,10 +33,11 @@
import de.uka.ilkd.key.symbolic_execution.model.IExecutionTermination.TerminationKind;
import de.uka.ilkd.key.symbolic_execution.object_model.ISymbolicEquivalenceClass;
import de.uka.ilkd.key.symbolic_execution.object_model.ISymbolicLayout;
import de.uka.ilkd.key.util.Pair;

import org.key_project.logic.sort.Sort;
import org.key_project.util.collection.ImmutableList;
import org.key_project.util.collection.ImmutableSLList;
import org.key_project.util.collection.Pair;
import org.key_project.util.java.CollectionUtil;

import org.xml.sax.Attributes;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@
import de.uka.ilkd.key.symbolic_execution.model.impl.AbstractExecutionValue;
import de.uka.ilkd.key.symbolic_execution.model.impl.AbstractExecutionVariable;
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionUtil;
import de.uka.ilkd.key.util.Pair;

import org.key_project.util.collection.ImmutableList;
import org.key_project.util.collection.ImmutableSLList;
import org.key_project.util.collection.Pair;

/**
* Extracts the current state and represents it as {@link IExecutionVariable}s.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,10 +36,10 @@
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionUtil;
import de.uka.ilkd.key.util.MiscTools;
import de.uka.ilkd.key.util.NodePreorderIterator;
import de.uka.ilkd.key.util.Pair;

import org.key_project.util.collection.ImmutableList;
import org.key_project.util.collection.ImmutableSLList;
import org.key_project.util.collection.Pair;
import org.key_project.util.java.ArrayUtil;

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionUtil;
import de.uka.ilkd.key.util.ProofStarter;

import org.key_project.logic.Name;
import org.key_project.util.collection.DefaultImmutableSet;
import org.key_project.util.collection.ImmutableList;
import org.key_project.util.collection.ImmutableSLList;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@

import de.uka.ilkd.key.logic.Term;
import de.uka.ilkd.key.logic.op.IProgramVariable;
import de.uka.ilkd.key.logic.sort.Sort;
import de.uka.ilkd.key.symbolic_execution.object_model.IModelSettings;
import de.uka.ilkd.key.symbolic_execution.object_model.ISymbolicAssociation;
import de.uka.ilkd.key.symbolic_execution.object_model.ISymbolicAssociationValueContainer;
Expand All @@ -29,6 +28,7 @@
import de.uka.ilkd.key.symbolic_execution.object_model.ISymbolicState;
import de.uka.ilkd.key.symbolic_execution.object_model.ISymbolicValue;

import org.key_project.logic.sort.Sort;
import org.key_project.util.collection.ImmutableList;
import org.key_project.util.collection.ImmutableSLList;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,8 @@
import java.util.Map.Entry;

import de.uka.ilkd.key.java.Services;
import de.uka.ilkd.key.ldt.JavaDLTheory;
import de.uka.ilkd.key.logic.DefaultVisitor;
import de.uka.ilkd.key.logic.Name;
import de.uka.ilkd.key.logic.PosInOccurrence;
import de.uka.ilkd.key.logic.Sequent;
import de.uka.ilkd.key.logic.SequentFormula;
Expand All @@ -26,8 +26,6 @@
import de.uka.ilkd.key.logic.op.IfThenElse;
import de.uka.ilkd.key.logic.op.Junctor;
import de.uka.ilkd.key.logic.op.Operator;
import de.uka.ilkd.key.logic.op.SortedOperator;
import de.uka.ilkd.key.logic.sort.Sort;
import de.uka.ilkd.key.proof.Goal;
import de.uka.ilkd.key.proof.Node;
import de.uka.ilkd.key.proof.init.ProofInputException;
Expand All @@ -43,6 +41,9 @@
import de.uka.ilkd.key.symbolic_execution.util.SymbolicExecutionUtil;
import de.uka.ilkd.key.util.NodePreorderIterator;

import org.key_project.logic.Name;
import org.key_project.logic.op.SortedOperator;
import org.key_project.logic.sort.Sort;
import org.key_project.util.collection.ImmutableArray;
import org.key_project.util.java.ArrayUtil;

Expand Down Expand Up @@ -95,8 +96,8 @@ public static boolean isPredicate(Operator operator) {
|| operator == AbstractTermTransformer.META_LEQ
|| operator == AbstractTermTransformer.META_LESS) {
return true; // These Meta constructs evaluate always to true or false
} else if (operator instanceof SortedOperator) {
return ((SortedOperator) operator).sort() == Sort.FORMULA;
} else if (operator instanceof final SortedOperator sortedOperator) {
return sortedOperator.sort() == JavaDLTheory.FORMULA;
} else {
return false;
}
Expand Down Expand Up @@ -156,8 +157,12 @@ public static boolean isIfThenElseFormula(Term term) {
*/
public static boolean isIfThenElseFormula(Operator operator, ImmutableArray<Term> subs) {
if (operator == IfThenElse.IF_THEN_ELSE) {
Sort sort = operator.sort(subs);
return sort == Sort.FORMULA;
Sort[] sorts = new Sort[subs.size()];
for (int i = 0; i < sorts.length; i++) {
sorts[i] = subs.get(i).sort();
}
Sort sort = operator.sort(sorts);
return sort == JavaDLTheory.FORMULA;
} else {
return false;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,12 @@
import de.uka.ilkd.key.java.SourceElement;
import de.uka.ilkd.key.logic.Sequent;
import de.uka.ilkd.key.logic.op.IProgramVariable;
import de.uka.ilkd.key.logic.sort.Sort;
import de.uka.ilkd.key.proof.Proof;
import de.uka.ilkd.key.symbolic_execution.SymbolicExecutionTreeBuilder;
import de.uka.ilkd.key.symbolic_execution.model.impl.ExecutionTermination;

import org.key_project.logic.sort.Sort;

/**
* <p>
* A node in the symbolic execution tree which represents the normal termination of a branch, e.g.
Expand Down
Loading
Loading