dependency-tracking-is-complete-for-all-reference-types
IN derived (depth 2)
The dependents index fully tracks all relationship types — both antecedent references and outlist references — enabling complete incremental propagation for every truth value change without requiring periodic full recompute as a fallback
Summary
When any node's truth value changes, the system can figure out exactly which other nodes might be affected and update only those, without ever needing to rescan the entire network from scratch. This works because every way nodes can reference each other — both standard dependencies and negation-style outlist references — is tracked in the same index, and that index stays correct through every possible mutation.
Justifications
SL — Mutations maintain dependents and outlist semantics are fully specified, so if outlist nodes were tracked in the dependents index, incremental propagation would reach all affected nodes — the gap is the sole obstacle to complete incremental consistency
Antecedents (all must be IN):
- every-network-mutation-maintains-dependents — After any public mutation method on `Network` (`add_node`, `retract`, `assert_node`, `add_justification`, `supersede`, `challenge`, `defend`, `convert_to_premise`, `add_nogood`, `summarize`), `verify_dependents()` returns an empty list.
- outlist-semantics-are-fully-specified — The outlist primitive has complete, well-defined semantics: multiple entries form a conjunction (all must be OUT), absent nodes are treated as OUT (permissive default), and outlist relationships survive persistence through JSON serialization with rebuilt dependent indexes.
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:
- dependency-completeness-enables-accurate-dedup — Complete dependency tracking for all reference types — both antecedent and outlist entries maintained eagerly by every network mutation — ensures deduplication accurately reflects the complete network topology: survivor selection considers all incoming dependencies including outlist references, and reference rewiring targets both antecedent and outlist positions across all justifications, preventing dedup from creating dangling references or miscounting dependents.