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_mealy_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.
        """
        mma = MealyMachine()
        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 is None:
                    logging.debug('Conjecture attempt on non closed table.')
                    return None
                o = self.observation_table[s, i]
                src_id = self.observation_table.sm_vector.index(s)
                dst_id = self.observation_table.sm_vector.index(dst)
                mma.add_arc(src_id, dst_id, i, o)

        # This works only for Mealy machines
        for s in mma.states:
            s.final = True
        return mma