# Reachability lattice Reachability is modeled as a deterministic lattice with explicit unknowns. Signals emits per-target states and a fact-level score that is stable under replay. Current v0 model (buckets) - Buckets: entrypoint, direct, runtime, unknown, unreachable. - Scores are confidence * bucket weight, clamped to 0.0-1.0. - Unknowns pressure penalizes the fact-level score to avoid false safety. Unknowns pressure - pressure = unknowns / (targets + unknowns) - score = avg(target scores) * (1 - min(pressure, ceiling)) Lattice v1 (design direction) - States: unknown, staticallyReachable, staticallyUnreachable, runtimeObserved, runtimeUnobserved, confirmedReachable, confirmedUnreachable, contested. - Joins are monotonic; contested absorbs conflicts. - Policy should treat unknown and contested as under investigation. Evidence requirements - Reachability facts include graph hashes, path references, and runtime hit refs. - Evidence transitions record previous state and supporting inputs. Policy guidance - Do not assert not_affected without high-confidence reachability evidence. - Unknown or contested states should surface as under_investigation. Related references - docs/reachability/lattice.md - docs/signals/unknowns-registry.md