RetirementReAssertion
The assert → retire → re-assert shape a retiring binding names, plus the evidence that makes it a retirement rather than three unrelated writes.
The three states alone cannot carry that claim. Retirement is not expressible in the join-semilattice algebra: a removal is more information, so s → s.remove(k) moves up exactly as s → s.add(k) does. asserted ⊑ retired ⊑ reAsserted is therefore satisfied by any chain of three additions — which is how the guard used to pass with the shape it exists to protect entirely absent (#2157). So the binding also hands over a reading of its own public value surface: shows, a predicate over one named subject. That predicate is the only thing that can say "retired stopped showing what asserted showed, and reAsserted shows it again".
Type Parameters
the lattice type under test.