any-mode-expansion-propagates-completely

IN derived (depth 2)

When any_mode expands a conjunctive justification into per-premise disjunctive justifications, each resulting justification inherits the complete outlist specification (conjunction semantics, absence tolerance, persistence across save/load), and all resulting truth-value changes propagate completely to every affected dependent — but only when outlist nodes are tracked in the dependents index, ensuring outlist-mediated effects are not silently dropped.

Summary

When the system converts a "believe this if ALL of these are true" rule into separate "believe this if ANY one of these is true" rules, every detail about what should defeat or block the belief carries over correctly to each new rule. This matters because if those defeat conditions were lost or partially dropped during conversion, beliefs could survive when they should have been retracted, leading to silent logical errors that would be extremely hard to diagnose.

Justifications

SL — Outlist inheritance (depth-1) guarantees semantic completeness of expanded justifications; full outlist specification (depth-1) guarantees well-defined evaluation — but propagation completeness requires outlist nodes to be in the dependents index for cascade reach.

Antecedents (all must be IN):

  • any-mode-preserves-full-outlist-semantics — When any_mode expands a single multi-antecedent justification into per-premise justifications (OR semantics), each resulting justification preserves the original outlist entries — ensuring non-monotonic defeat works correctly under disjunctive expansion with no semantic loss.
  • 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:

Details