dedup-reflects-complete-dependency-graph

IN derived (depth 2)

Deduplication survivor selection accurately reflects the complete dependency graph — the node with the most dependents survives each cluster, and that dependent count includes both antecedent-based and outlist-based dependency edges, ensuring the structurally most-connected node is always preserved.

Summary

When the system finds duplicate beliefs and needs to keep only one, it picks the copy that is most deeply woven into the network — the one referenced by the most other beliefs. This count considers all types of connections, not just direct dependencies, so the survivor is always the copy whose removal would be most disruptive, preserving the maximum amount of reasoning structure.

Justifications

SL — Topology-preserving auditable dedup with topology-reliable survivor selection should reflect the complete dependency graph, but outlist exclusion from dependents means dependent counts undercount true connectivity

Antecedents (all must be IN):

  • dedup-is-topology-preserving-and-auditable — Deduplication preserves network topology (rewrites both antecedent and outlist references to survivors), selects structurally-optimal survivors (most dependents with lexicographic tiebreak), and supports human oversight (KEEP/RETRACT markers in a user-editable plan format).
  • dedup-survivor-selection-is-topology-reliable — Deduplication reliably selects the structurally-optimal survivor in each duplicate cluster by choosing the node with the most dependents, and this selection is correct because the dependents index accurately reflects the justification graph.

Unless (any of these IN defeats this justification):

  • outlist-nodes-not-in-dependents-index — Outlist nodes are not tracked in the `dependents` index, so when an outlist node is retracted (goes OUT), dependent GATE beliefs are not enqueued for re-evaluation by `_propagate` — requiring manual `reasons assert` as a workaround.

Dependents

These beliefs depend on this one:

Details