Alignment Workspace

Item 71: Build the due-activation term in `roots()`

Normativity line — legitimacy · difficulty open · project normativity.legitimacy · open · node item-71

— specified, not built

Narrowed from a gap to an implementation task. Legitimate Evolution needs the conformance condition D1: every rising edge of Due must be realized by an incurred claim. The seam in Reflective Integrity is now determined, and it uses only functions that already exist.

def active_due(self, t=None):            # Due supplied, as Permit is
    return self.due_sem(self.reasons(t), self.prestate(self._at(t)))

def new_due(self, t):
    prev = self.active_due(t - 1) if t > 0 else frozenset()
    return self.active_due(t) - prev

def roots(self, t=None):
    out = list(self.seed.roots0)
    for a in self.norm_events(t):
        out.extend(self.mint(a))
    for u in range(1, self._at(t) + 1):                    # the seam
        out.extend(self.mint_due(k, u) for k in self.new_due(u))
    return tuple(out)

reasons(t) already exposes the represented ledger as a prefix function, prestate already exists, and mint_ids already keys ids by position so two episodes of one claim key get distinct ids for free. No new event kind.

Three things to get right when building it. Due is a level and the edge is taken against its own prior output, never against roots or live — otherwise answerability decides what is owed. D1 is an inclusion: carriage already mints roots and must keep doing so. And because roots stays a pure function of history, D1 holds by construction in the semantic state; the conformance failure lives at the boundary where a record is materialized or certified, so the check belongs in whatever ships a record, as a recomputation.

Note the name collision to avoid: RI's existing due(q,t) means this live root's episode is being succeeded, which is unrelated.

Deliverable shape: the activation term, plus a verifier that recomputes rising edges from a shipped record and compares them against its roots. Acceptance check: a record in which no step is appended between two states and a claim nevertheless activates because the normative context changed; its negative, a resolved claim whose material stays represented and does not reactivate; and a recurrence, where a claim key falls and rises and mints a second root. Context: projects/normativity/legitimacy/rounds/2026-08-25-legitimate-evolution/ANSWERABILITY.md, RI REALIZATION OF D1; COUNTERMODELS.md §19. Reserved: implementing it edits the Reflective Integrity Core round's artifact.

Deliverable shape: the activation term, plus a verifier that recomputes rising edges from a shipped record and compares them against its roots.

Acceptance check: a record in which no step is appended between two states and a claim nevertheless activates because the normative context changed; its negative, a resolved claim whose material stays represented and does not reactivate; and a recurrence, where a claim key falls and rises and mints a second root.

Context: projects/normativity/legitimacy/rounds/2026-08-25-legitimate-evolution/ANSWERABILITY.md

Registered results bearing on this item

None registered.

Where it hangs

Rounds and decisions that touch it

None recorded.