/// Internally this works by offsetting the state indices of the other LTS by the number of states
/// can find the states of the other LTS in the merged LTS as the initial state of the other LTS.
// Remove the sentinel state temporarily. This breaks the state invariant, but we will add it back later.
/// Creates a labelled transition system from another one, given the permutation of state indices
fn outgoing_transitions(&self, state_index: StateIndex) -> impl Iterator<Item = Transition> + '_ {