Source: https://courses.engr.illinois.edu/cs374/fa2019/A/notes/models/02-regular.pdf