outlist-semantics-are-fully-specified
IN derived (depth 1)
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.
Summary
The rules for how "outlist" conditions work are completely nailed down with no ambiguity. When a conclusion depends on certain things being absent or false, all of those things must actually be absent for the conclusion to hold, anything not yet in the system counts as absent by default, and these relationships are correctly saved and restored from the database without losing their behavior.
Justifications
SL — These three beliefs specify the complete behavioral contract of the outlist primitive — conjunction, absence handling, and persistence — independent of how it is used
Antecedents (all must be IN):
- multiple-outlist-is-conjunction — When a justification has multiple outlist entries, ALL must be OUT for the justification to be valid; any single outlist node going IN defeats the entire justification
- outlist-absent-means-out — An outlist node that doesn't exist in the network is treated as OUT (justification satisfied); absent antecedent nodes fail validation — this asymmetry makes missing counter-evidence permissive while missing supporting evidence is strict
- outlist-relationships-survive-persistence — Outlists are stored as `outlist_json` in the SQLite `justifications` table; on load, the dependent index is rebuilt for both antecedents and outlist nodes, preserving propagation behavior across save/load cycles
Dependents
These beliefs depend on this one:
- absence-and-outlist-form-complete-negative-semantics — The system has complete semantics for all forms of negation: structural absence produces emergent premise behavior and asymmetric fail modes, while explicit outlist entries provide conjunctive defeat with defined absent-node handling and persistence — together covering every mechanism by which beliefs can be negated or defeated.
- any-mode-expansion-propagates-completely — 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.
- dependency-tracking-is-complete-for-all-reference-types — 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
- dialectics-inherit-complete-outlist-semantics — The recursive challenge/defend dialectical system inherits fully-specified semantics from the outlist primitive: conjunction over multiple outlists, absent-means-OUT permissiveness, and persistence guarantees all apply to dialectical structures without additional rules.
- incremental-propagation-is-fully-complete — Incremental truth propagation reaches every node whose truth value should change — including nodes that depend via outlist entries — without requiring periodic full recomputation, because safe terminating BFS traversal operates over a dependents index that tracks both antecedent and outlist relationships.
- propagation-automatically-cascades-on-all-truth-changes — Truth propagation automatically cascades to all dependent nodes whenever any node's truth value changes, including nodes that appear only in outlists — making GATE belief re-evaluation fully automatic with no manual intervention required after outlist node retraction.