Using Branching Time Logic to Synthesize Synchronization Skeletons