persistence-round-trip-is-lossless

OUT derived (depth 2)

The save/load round trip preserves all network state faithfully: snapshot persistence captures the full graph, stored truth values are trusted without re-propagation, justification insertion order is preserved via rowid, and outlist relationships survive serialization.

Summary

Saving and loading the belief network is supposed to be completely lossless — the full graph structure, truth values, justification ordering, and dependency relationships all survive the round trip through SQLite storage. This matters because any data lost during persistence could silently corrupt the reasoning system's conclusions after a restart. However, this claim is currently marked OUT, meaning one or more of its supporting assumptions has been retracted or invalidated, so lossless round-tripping is not currently assured.

Justifications

SL — Round-trip is lossless for persisted state, but the dependents index must be rebuilt on load — a fragile denormalization that could diverge if rebuild logic doesn't perfectly mirror the original construction

Antecedents (all must be IN):

  • persistence-is-snapshot-not-incremental — The storage layer operates as a full snapshot: save replaces all rows, load trusts stored values without re-propagation, and the dependents index is rebuilt from scratch
  • justification-order-preserved-via-rowid — Justification insertion order is preserved across save/load cycles using `AUTOINCREMENT` rowid and `ORDER BY rowid` on read, which matters because justification priority affects truth maintenance.
  • 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

Unless (any of these IN defeats this justification):

  • dependents-index-is-fragile-denormalization — The dependents set is a manually-maintained denormalized reverse index that is never persisted and must be rebuilt on every load, creating a consistency obligation on all mutation paths

Details