While working on my otel presentation for tomorrow:

It turns out that proofs in formal verification and context propagation in distributed tracing have the same problem:

In verification, the shape of a proof eventually ends breaking due to semantically equivalent code changes affecting some internal implementation detail.

In context propagation, libraries end up breaking APIs when they try to expose tracing information for the same reason: The tracing structure becomes semantically relevant.

@hazelweakly Huh, I never thought of it this way, you have a point!

Maybe the trick is not verify everything / not to require propagation of entirety of the context, rather being able to mark "doesn't crash" as required and "telemetry bits" best effort?