# Simulation and Abstraction

Consider a nondeterministic state machine *C*:

Compare with the deterministic state machine *A*:

Considering again the same game, *C* can match anything *A* does,
but now the relationship is not symmetric. *C *can produce the output sequence

0, 0, 1, 1, ...

for example, while *A *can only produce (ignoring stuttering):

0, 1, 0, 1, ...

Thus, *C* simulates *A*, but *A * does not simulate *C*.
*C *is said to be an **abstraction** of *A* because it has all
of the possible behaviors of *A*, but fewer constraints (so it can have
behaviors that *A* cannot have). In this sense (fewer constraints), *C*
is a less detailed model.

The simulation relation for this case is very simple:

{ (*0and2*, *0to3*), (*1and3*, *0to3*) }.