Unfoldings: A Partial-Order Approach to Model Checking