Skip to content

chi_s windowed calls violate the docstring's confined-chain law — numerator counts full-stratum chains (latent; only window=None is wired) #49

Description

@ascalva

Observed (found by the dn-mathematical-foundations audit, verified against HEAD 68d8d39): core/graph/conductance.py's module docstring states the χ_s design law as "any ≼-chain confined to a stratum within a window has ≤ N_s(W)" (conductance.py:57-58), but the implementation's numerator is not confined: _longest_chain (conductance.py:357-372) calls stratum_spine.proper_time(a, b) over pairs of window ids, and proper_time (core/temporal/spine.py:829) counts the max chain through the causal interval in the FULL stratum. chi_s (conductance.py:375-390) divides by n_s = len(window ids).

Concrete counterexample (the suite's own fixture): a 3-event total-order stratum (_one_doc_spine(versions=3)) with window=[first_id, last_id] gives longest = 3, N_s = 2, χ_s = 1.5 ∉ (0,1].

Why it is latent, not live: the only wired call is chi_s_all (conductance.py:393), which passes window=None — and for the whole-stratum window the law holds. The named falsifier (test_conductance.py:314) never exercises window, so it cannot catch this.

Where it is recorded: dn-mathematical-foundations (the foundations design note, PR #47) states the (0,1] range law for window=None as the CND-6 row's hypothesis (§2.5), and MF-3 (the cut/conductance/curvature falsifier batch) carries the windowed-law falsifier as a named deliverable.

Resolution shape (builder's call at MF-3): either confine the numerator to chains within the window (matching the docstring's law) or pin the docstring/row to the window=None hypothesis explicitly in code; per the note's non-goal 10, MF-3 files the failing test + this issue's disposition, never a drive-by fix. Closes when the windowed falsifier lands and the law/implementation pair is coherent one way or the other.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    route:buildersettle against code and spec, close with resolutiontype:defectthe record or the code is wrong

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions