{"id":"nearby-friends-visibility-scales","text":"Nearby-friends correctly enforces bidirectional visibility with staleness rejection on both notification and query paths, but `update_location` iterates all friends with haversine for each (O(friends)) rather than using the spatial grid that `get_nearby_friends` uses — meaning notification throughput degrades linearly with social graph density while query performance does not.","truth_value":"OUT","source":"","source_url":"","source_hash":"","justifications":[{"type":"SL","antecedents":["nearby-friends-bidirectional-visibility","nearby-friends-staleness-enforced-on-both-paths"],"outlist":["nearby-friends-update-location-skips-grid-filtering"],"label":"Correctness properties (bidirectional visibility, staleness enforcement) are sound, but the asymmetric use of spatial indexing between the two paths creates a scalability gap that undermines the notification path"}],"dependents":[],"metadata":{"last_reviewed":"2026-06-06T06:26:57","review_result":"invalid","_retracted":true,"retract_reason":"research: abandoned — The belief has a fundamental structural contradiction: its unless clause requires the grid-skipping fact to be OUT (disbelieved), but the claim text asserts that exact grid-skipping behavior as true. This means the belief is only IN when its own core claim is unsupported, and is OUT when its claim is actually true. This isn't a missing antecedent or overstated wording — it's an inverted logical structure that cannot be fixed by linking or softening. The belief needs to be reconstructed from scratch with correct dependency direction."},"created_at":"","updated_at":"2026-06-17T14:30:37+00:00","reviewed_at":"","verified_at":"","retracted_at":"2026-06-17T14:30:37+00:00","explanation":{"steps":[{"node":"nearby-friends-visibility-scales","truth_value":"OUT","reason":"SL justification invalid","failed_antecedents":[],"label":"Correctness properties (bidirectional visibility, staleness enforcement) are sound, but the asymmetric use of spatial indexing between the two paths creates a scalability gap that undermines the notification path"}]}}