Source: https://ocw.mit.edu/courses/6-045j-automata-computability-and-complexity-spring-2011/5b9f68b5081985b135f6ad521a93d81d_MIT6_045JS11_lec07.pdf