runOtherJoinLaws

The three join laws that are not about bracketing — commutativity, idempotence and least-upper-bound — over causalPool, plus the byte law on the commutativity pair.

These are breadth, not depth, and the honest framing is worth keeping in front of the next reader. Over the causal pool of a lattice provably broken in the way #2086 was broken, the four laws read assoc = 500, comm = 0, idem = 0, lub = 0: associativity is the only one that sees it. Nobody should add these expecting a second detector for that class, and nobody should read a green here as covering what associativeJoinLawsHoldOverLowerSeeds covers. What they do buy is the rest of the semilattice contract, on a pool that carries causal ancestry, on every target — which is what the JVM-only surface they replace asserted over operands drawn from disjoint replicas, where no operand could be another's ancestor.

Commutativity is asserted unconditionally, with no per-binding waiver, and that was a decision. It reads 0 everywhere today only because two generators were fixed first: LWWRegisterConvergenceTest minted one (replica, timestamp) tag for two different values — outside LWWRegister.set's documented precondition — and the pool held 226 non-commuting pairs in 12,979. The fix belongs in the generator, because the interesting behaviour at an equal tag is real and stays pinned by name in LWWMapTest (oneTagCarryingTwoValuesCostsCommutativityNotAssociativity) and MVRegisterTest (forkingOneReplicaBreaksCommutativityButNotAssociativity). A tagUniqueness = false escape hatch here would be a permanent green-by-declaration and would leave that behaviour asserted nowhere.

Least-upper-bound is the absorption pair, a ⊔ b ⊒ a and a ⊔ b ⊒ b, checked as (a ⊔ b) ⊔ a == a ⊔ b. That is the form the deleted jqwik surface asserted, re-homed verbatim rather than strengthened, so a red here means the same thing it meant there.

The byte law extends to the commutativity pair for the same reason it covers the bracketing pair: Quilter's root-hash gate compares digests, so two peers that agree on the value and disagree on the bytes read as diverged. Measured free — 0 differences in 3,113–3,261 equal-valued pairs per binding.