Avoiding the state explosion problem in temporal logic model checking