Skip to main content

Logical clock calibration

For A send m, A local, B local, B receive m, B send n, C receive n, the vectors are (1,0,0), (2,0,0), (0,1,0), (1,2,0), (1,3,0), (1,3,1). Lamport values are 1,2,1,2,3,4. A’s second event is concurrent with B’s receipt: equal scalar timestamps do not identify the same event.

Componentwise <= plus at least one strict inequality establishes vector-before in this model. Requiring all components to be strictly smaller fails on (1,0) before (2,0). Taking minimum on receive discards knowledge. A send-time snapshot must not change when its sender later advances.

The graph oracle derives ancestors from local-successor and matching-message edges. It deliberately does not use vector arithmetic. Inserting edges between arbitrary adjacent input entries would make independent events falsely causal. Equivalent topological orderings preserve results when local orders and message matches stay unchanged.

A weak answer says “the smaller scalar happened first.” A passing answer gives a path or demonstrates its absence in the complete model. A strong answer identifies the unobserved edges or changed identity assumptions that would invalidate an operational inference. Vector concurrency does not choose a conflict-resolution policy.

After 48 hours add a new process and an indirect message, then recompute without solutions. Original detector, consensus and retry labs still require their own evidence. These checks establish neither physical timing nor real-cluster safety.