I update my time, ie, union(time me, time me), I get an element that's one up the lattice. When I union with someone else, I get the max. So we have an algebraic structure which is (L,≤,next:L→L)(L, \leq, next: L \rightarrow L) where next is monotone for (L, <=). The induced union operator ∪:L×L→L\cup: L \times L \rightarrow L is:

x∪y≡{next(x)x=ymax⁡(x,y)x≠y x \cup y \equiv \begin{cases} \texttt{next}(x) & x = y \\ \max(x, y) & x \neq y \end{cases}

This also shows up in the case of the "Gallager-Humblet-Spira Algorithm" and the fragment-name-union-rule.