I am reading the proof of Theorem 3.21 in Sipser's textbook.
Theorem 3.21 A language is a Turing Recognizable iff some enumerator enumerates it.
First direction (<==). Given an Enumerator E that enumerates language B, then we want to construct a TM M s. t. M that recognize language B. In order to do that, we do the following:
M="On input string x
- Run E and compare each printed string with x
- If x ever appears in the output of E, accept."
Given the following fact:
A TM M accepts input w if a sequence of configurations $C_1, C_2, ..., C_k$ exists s. t. $C_1$ is the starting configuration, $C_2$ to $C_{k-1}$ is the process configuration and $C_k$ is the accepting configuration.
My question: It is not clear how E accepts? e.g. What it does from my point of view is: It runs E without any input, if ever E printed out an arbitrary string, let's call it r, then if r==x, then we accept. I thought that we should do some processing like with given input x, then we should do some computation (moving from configuration to another) until we get to some arbitrary string that should be the output of the accepting state.
Note that I read all related answers to this question, but it didn't cover my question. For example: this and this.