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.

def get_sfa_conjecture(self):
        """
        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.
        """
        sfa = SFA(self.alphabet)
        for s in self.observation_table.sm_vector:
            transitions = self._get_predicate_guards(
                s, self.observation_table.training_data[s])
            for (t, pred) in transitions:
                src_id = self.observation_table.sm_vector.index(s)
                dst_id = self.observation_table.sm_vector.index(t)
                assert isinstance(
                    pred, SetPredicate), "Invalid type for predicate {}".format(pred)
                sfa.add_arc(src_id, dst_id, pred)

        # Mark the final states in the hypothesis automaton.
        i = 0
        for s in self.observation_table.sm_vector:
            sfa.states[i].final = self.observation_table[s, self.epsilon]
            i += 1
        return sfa