Time, causality, and concurrency