invariantHolds

fun invariantHolds(toleranceM: Double = 0.5): Boolean

The invariant every algorithm must preserve: cleaned distance is the original minus the parts we deliberately refused to trust. Spike distance is excluded from original by design — a teleport was never travelled, so it is not "distance we then removed".

This only holds because FixResult.bucket is a SINGLE value: every leg is attributed to exactly one bucket, never two. A fix that is both mock and implausible is one or the other, not both — otherwise its distance would be subtracted twice and cleanedM would come out short. Any future algorithm that wants to attribute one leg to two buckets breaks this invariant and must not be written that way.