Determine whether one relaxed ARC access must be strengthened to acquire in prior proofs

Ascertain whether the second of the two relaxed memory accesses in Rust’s Atomic Reference Counting (ARC) implementation that the Relaxed RustBelt proof strengthened to acquire is actually necessary for correctness, or whether the algorithm can be verified with that access remaining relaxed.

Background

Previous work (Relaxed RustBelt) verified full ARC but only after strengthening two relaxed accesses to acquire. Subsequent analysis identified one of these two strengthenings as addressing a genuine bug in ARC, leaving the necessity of the other strengthening unresolved.

This raises a targeted question about the minimal memory-ordering requirements of ARC: can the remaining access be relaxed without compromising correctness, or is acquire ordering essential? Resolving this would clarify ARC’s true memory-ordering needs and align proofs with the intended algorithm.

References

The latter even verified full ARC, except that they had to strengthen two relaxed accesses to acquire accesses. One of these was in fact a bug in ARC; the status of the other remains open.