every-mutation-reports-its-effects

OUT derived (depth 1)

All mutating operations report their effects as structured data: retract returns the full changed set, add_justification returns a change dict with old/new truth values, and API mutating operations use before/after truth-value diffing to capture deltas.

Summary

Every operation that changes the network tells you exactly what it changed. Whether you retract a node, add a justification, or call through the API, you get back structured data showing which nodes flipped and in what direction. This belief is currently out because one or more of its supporting claims about how retract, add_justification, or the API diffing actually work have been retracted or lost support.

Justifications

SL — Three independent mutation-reporting mechanisms unify into a single observability property — every state change is reported to callers

Antecedents (all must be IN):

  • api-mutating-ops-use-before-after-diffing — Mutating operations (`retract_node`, `assert_node`, `what_if_retract`, `what_if_assert`) snapshot all truth values before the operation and diff afterward to classify changes into `went_out`/`went_in` lists.
  • retract-returns-changed-set — `Network.retract()` returns a list of all node IDs whose truth value changed, including the target and all transitively affected dependents; retracting an already-OUT node returns `[]`
  • add-justification-returns-change-dict — `Network.add_justification` returns a dict with keys `node_id`, `old_truth_value`, `new_truth_value`, and `changed` (list of all nodes whose truth value changed).

Dependents

These beliefs depend on this one:

Details