The idea that an application is just a tremendously complicated algorithm. Given a state and a user interaction (or system interaction), a new state is achieved.
I'm testing my application as an algorithm over a series of inputs
"if we can represent a program's execution sequence as a data structure, we can use quickcheck on it."