code: def get_dfa_conjecture(self):
          
          dfa = DFA(self.alphabet)
          for s in self.observation_table.sm_vector:
              for i in self.alphabet:
                  dst = self.observation_table.equiv_classes[s + i]
                  # If dst == None then the table is not closed.
                  if dst == None:
                      logging.debug('Conjecture attempt on non closed table.')
                      return None
                  obsrv = self.observation_table[s, i]
                  src_id = self.observation_table.sm_vector.index(s)
                  dst_id = self.observation_table.sm_vector.index(dst)
                  dfa.add_arc(src_id, dst_id, i, obsrv)
  
          # Mark the final states in the hypothesis automaton.
          i = 0
          for s in self.observation_table.sm_vector:
              dfa[i].final = self.observation_table[s, self.epsilon]
              i += 1
          return dfa
docs: Utilize the observation table to construct a Mealy Machine.
          The library used for representing the Mealy Machine is the python
          bindings of the openFST library (pyFST).
          Args:
              None
          Returns:
              MealyMachine: A mealy machine build based on a closed and consistent
          observation table.