# Release v0.5.27: Vector clocks and causal order Private proof snapshot: `035b98853ca060ea70ea70815a56ae55d0d7e1d4`. Previous public main: `e7311c61a6d187bee760c891f93021c31a108168`. ## Proven scope and assumptions The new module formalizes vector clocks on Fin n over finite legal histories. Events have a process, positive local sequence number, and Local, Send or Recv payload. Message identifiers distinguish actual sends and receives. Every receive matches an earlier send addressed to that process; timestamps are immutable. Sends and receives are unique within their respective identifier classes. Outstanding messages and delivery out of send order are permitted. HappensBefore is the strict transitive closure of local event order and matching send-to-receive edges. Its definition does not use vector clocks. CausalPast adds reflexivity separately. An executable, terminating recurrence computes timestamps from predecessors using coordinatewise maxima and one increment of the executing process. The local predecessor fold is proved equal to the last local timestamp; the message fold is proved equal to the unique delivered send timestamp. These lemmas recover the ordinary local/send tick and receive max-then-tick rules. Induction over trace prefixes proves the causal-past invariant: each coordinate is the maximum local event number of that process in the reflexive causal past, or zero if empty. It yields both directions of HappensBefore e f iff V(e)