code: protected State replaceOrRegister(StateSignature sig) {
          State state = register.get(sig);
          if (state != null) {
              return state;
          }
  
          state = new State(sig);
          register.put(sig, state);
          for (int i = 0; i < sig.successors.array.length; i++) {
              State succ = sig.successors.array[i];
              if (succ != null) {
                  succ.increaseIncoming();
              }
          }
          return state;
      }
docs: Returns (and possibly creates) the canonical state for the given signature.
  
  @param sig
  the signature
  
  @return the canonical state for the given signature