Causality and replication in concurrent processes