propagation-terminates-deterministically

IN derived (depth 1)

Truth propagation is guaranteed to terminate: BFS prevents stack overflow, stop-on-unchanged prevents oscillation, and fixpoint iteration bounds the outer loop

Summary

The system's truth propagation algorithm is guaranteed to finish and produce a stable result. Three mechanisms work together to ensure this: breadth-first traversal avoids blowing the call stack, unchanged nodes short-circuit further processing, and the outer loop has a hard upper bound on iterations. This means there are no scenarios where updating one belief causes the system to hang, crash, or flip-flop indefinitely.

Justifications

SL — Three complementary mechanisms each address a different termination failure mode

Antecedents (all must be IN):

  • propagation-is-bfs — Truth value propagation in `_propagate` uses `deque`-based BFS through the `dependents` graph, not DFS, ensuring breadth-first wavefront expansion.
  • propagate-cascade-stops-on-unchanged — If a dependent's recomputed truth value equals its current value, it is not enqueued — the cascade terminates along that path, making propagation selective rather than exhaustive
  • recompute-all-uses-fixpoint — `recompute_all` iterates until no truth values change, bounded by `len(nodes) + 1` iterations, handling cascading dependencies from arbitrary node ordering.

Dependents

These beliefs depend on this one:

Details