code: def _run_in_hypothesis(self, mma, w_string, index):
          "
          Run the string in the hypothesis automaton for index steps and then
          return the access string for the state reached concatanated with the
          rest of the string w.
          Args:
              mma (DFA): The hypothesis automaton
              w_string (str): The examined string to be consumed
              index (int): The index value for selecting the prefix of w
          Return:
              str: The access string
          """
          state = mma.states[0]
          s_index = 0
          for i in range(index):
              for arc in state:
                  if arc.guard.is_sat(w_string[i]):
                      state = mma.states[arc.dst_state]
                      s_index = arc.dst_state
  
          # The id of the state is its index inside the Sm list
          access_string = self.observation_table.sm_vector[s_index]
          logging.debug(
              'Access string for %d: %s - %d ',
              index,
              access_string,
              s_index)
          return access_string
docs: Run the string in the hypothesis automaton for index steps and then
          return the access string for the state reached concatanated with the
          rest of the string w.
          Args:
              mma (DFA): The hypothesis automaton
              w_string (str): The examined string to be consumed
              index (int): The index value for selecting the prefix of w
          Return:
              str: The access string