Skip to content

Commit 86e3185

Browse files
committed
Throw exception for difference operation
1 parent 1ea3e53 commit 86e3185

File tree

1 file changed

+5
-0
lines changed
  • trunk/source/Library-Automata/src/de/uni_freiburg/informatik/ultimate/automata/petrinet/operations

1 file changed

+5
-0
lines changed

trunk/source/Library-Automata/src/de/uni_freiburg/informatik/ultimate/automata/petrinet/operations/Difference.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
import de.uni_freiburg.informatik.ultimate.automata.petrinet.netdatastructures.Transition;
5454
import de.uni_freiburg.informatik.ultimate.automata.statefactory.IBlackWhiteStateFactory;
5555
import de.uni_freiburg.informatik.ultimate.automata.statefactory.IPetriNet2FiniteAutomatonStateFactory;
56+
import de.uni_freiburg.informatik.ultimate.util.datastructures.DataStructureUtils;
5657
import de.uni_freiburg.informatik.ultimate.util.datastructures.ImmutableSet;
5758
import de.uni_freiburg.informatik.ultimate.util.datastructures.relation.HashRelation;
5859

@@ -165,6 +166,10 @@ public Difference(final AutomataLibraryServices services, final IBlackWhiteState
165166
final LoopSyncMethod loopSyncMethod, final DifferencePairwiseOnDemand<LETTER, PLACE, ?> inputDpod,
166167
final boolean removeRedundantFlow) throws AutomataOperationCanceledException, PetriNetNot1SafeException {
167168
super(services);
169+
if (DataStructureUtils.haveNonEmptyIntersection(originalMinuend.getPlaces(), subtrahendDfa.getStates())) {
170+
throw new UnsupportedOperationException(
171+
"Difference is only supported for operands with distinct places / states.");
172+
}
168173
mSubtrahend = subtrahendDfa;
169174
mContentFactory = factory;
170175
mLoopSyncMethod = loopSyncMethod;

0 commit comments

Comments
 (0)