docs: public void deleteObligation(final Obligation obligation, int basicBlockId)
              throws ObligationAcquiredOrReleasedInLoopException {
          Map<ObligationSet, State> updatedStateMap = new HashMap<>();
          for (Iterator<State> i = stateIterator(); i.hasNext();) {
              State state = i.next();
              checkCircularity(state, obligation, basicBlockId);
              ObligationSet obligationSet = state.getObligationSet();
              obligationSet.remove(obligation);
              if (!obligationSet.isEmpty()) {
                  updatedStateMap.put(obligationSet, state);
              }
          }
          replaceMap(updatedStateMap);
      }