Discrepant Abstraction by David Clarke & Stanley K. Abe