For what it’s worth, I think this is trying to get at the same insight as logical time but via a different path.
For the curious reader, this is also the same reason we use vector clocks to build distributed systems when we can’t synchronize the clocks very well.
And there’s something quite interesting about computation as a partial order. It might seem that this only comes up when you have a “distributed” system, but actually you need partial orders to reason about unitary programs when they are non-deterministic (any program with loops and conditionals that can’t be unrolled because they depend on inputs not known before runtime are non-deterministic in this sense). For this reason, partial orders are the bread-and-butter of program verification.
For what it’s worth, I think this is trying to get at the same insight as logical time but via a different path.
For the curious reader, this is also the same reason we use vector clocks to build distributed systems when we can’t synchronize the clocks very well.
And there’s something quite interesting about computation as a partial order. It might seem that this only comes up when you have a “distributed” system, but actually you need partial orders to reason about unitary programs when they are non-deterministic (any program with loops and conditionals that can’t be unrolled because they depend on inputs not known before runtime are non-deterministic in this sense). For this reason, partial orders are the bread-and-butter of program verification.