def consume_input(self, inp):
        """
        Return True/False if the machine accepts/reject the input.
        Args:
            inp (str): input string to be consumed
        Retunrs:
            bool: A true or false value depending on if the DFA
                accepts the provided input
        """
        cur_state = self.states[0]
        for character in inp:
            found = False
            for arc in cur_state.arcs:
                if arc.guard.is_sat(character):
                    cur_state = self.states[arc.dst_state]
                    found = True
                    break

            if not found:
                raise RuntimeError('SFA not complete')

        return cur_state.final
Return True/False if the machine accepts/reject the input.
        Args:
            inp (str): input string to be consumed
        Retunrs:
            bool: A true or false value depending on if the DFA
                accepts the provided input