diff --git a/docs/EDCM_MATHEMATICS.md b/docs/EDCM_MATHEMATICS.md index 6c0c203..85c1a62 100644 --- a/docs/EDCM_MATHEMATICS.md +++ b/docs/EDCM_MATHEMATICS.md @@ -294,20 +294,27 @@ N_t=\operatorname{clamp}\left( \right). $$ -### Confidence polarity +### Scope motion compatibility carrier -Let $o_t$ and $u_t$ be overconfidence and under-confidence marker hits: +Bare $O$ is a legacy scalar carrier, not a canonical metric identity. The +maintained baseline binds it explicitly to +`edcm.behavioral.O_scope`; `edcm.behavioral.O_confidence` remains a distinct +canonical axis and is not produced by `RoundMetrics`. -$$ +Let $e_t$ and $c_t$ be hits from the frozen `scope_expansion` and +`scope_containment` marker categories: + +$ O_t= \begin{cases} -0,&o_t+u_t=0,\\ -2\dfrac{o_t}{o_t+u_t}-1,&o_t+u_t>0. +0,&e_t+c_t=0,\\ +2\dfrac{e_t}{e_t+c_t}-1,&e_t+c_t>0. \end{cases} -$$ +$ -Positive is overconfident, negative is under-confident. This baseline zero is -a within-domain no-hit value; it must not be reused as typed absence. +Positive is scope expansion/overextension and negative is scope +contraction/containment. This baseline zero is a within-domain no-hit value; it +must not be reused as typed absence. ### Coherence loss @@ -628,9 +635,13 @@ The field reader retains `previous_field_hash->current_field_hash` and appends the motion-presence flag and the three exact read tuples. This is a runtime-language identity contract, not a portable canonical-JSON signature. -The axis registry also names $C,R,D,I,F,E,O_{scope},O_{confidence},L_{load}, -L_{loss},L_{resistance},N,P,\kappa$ and the six projections. Registration does -not make an axis canonical. +The axis registry names distinct canonical identities +$O_{scope}\ne O_{confidence}$ and +$L_{load}\ne L_{loss}\ne L_{resistance}$ alongside the remaining axes and +projections. A bare symbol is not canonical identity. The maintained legacy +round-vector carriers bind $O\rightarrow O_{scope}$ and +$L\rightarrow L_{loss}$; those compatibility bindings do not alias the sibling +axes. ## 10. Implemented v0.3.1 architecture layer diff --git a/docs/metric-origin-domain-claim.md b/docs/metric-origin-domain-claim.md index 51e9586..f5a0b66 100644 --- a/docs/metric-origin-domain-claim.md +++ b/docs/metric-origin-domain-claim.md @@ -25,12 +25,18 @@ neighboring_terms: - semantic trajectory known_collisions: - UCNS geometric origin remains separate -effective_version: metric-origin-v0 -supersedes: none + - legacy single-letter O and L carriers are noncanonical identities +effective_version: metric-origin-v0.1 +supersedes: metric-origin-v0 +resolved_identity_split: + - O_scope != O_confidence + - L_load != L_loss != L_resistance +legacy_carrier_targets: + O: edcm.behavioral.O_scope + L: edcm.behavioral.L_loss unresolved: - authority provenance for the originating operator declaration - - O naming conflict: Overextension versus Overconfidence - - L naming conflict: Load versus Coherence Loss + - lawful observed-construct to semantic-origin projection/distance ``` The circularity firewall is binding: diff --git a/edcm/measurement/metrics/matrix.py b/edcm/measurement/metrics/matrix.py index 1b63c23..3ffbe4e 100644 --- a/edcm/measurement/metrics/matrix.py +++ b/edcm/measurement/metrics/matrix.py @@ -17,7 +17,7 @@ Notes on invariants ------------------- - All Layer 1 metrics except O are [0, 1]. -- O is [-1, 1]: positive = overconfident, negative = under-confident. +- O is [-1, 1]: positive = scope expansion/overextension, negative = scope contraction/containment. It is the only signed metric. Callers that need [0, 1] should use abs(O) or (O + 1) / 2 as appropriate; the signed range is preserved here for full fidelity. @@ -94,8 +94,8 @@ # marker_C MarkerHits(C, contradiction) (÷token_count before use) # marker_R MarkerHits(R, refusal) (÷token_count before use) # marker_I MarkerHits(I, integration-fail) (÷token_count before use) -# marker_O_over MarkerHits(O, overconfidence) (signed, see O row) -# marker_O_under MarkerHits(O, under-confidence) (signed, see O row) +# marker_O_expand MarkerHits(O, scope_expansion) (signed, see O row) +# marker_O_contain MarkerHits(O, scope_containment) (signed, see O row) # loop_risk composite (rep_b, rep_ngram, cosine_ab) — see risk.py # entropy_gain ΔH between rounds (for P) # --------------------------------------------------------------------------- @@ -136,11 +136,11 @@ "I": { "marker_I": 1.0, }, - # O: overconfidence — signed [-1, 1] - # O = (over - under) / (over + under); weights are directional + # O: legacy carrier for canonical O_scope — signed [-1, 1] + # O = (expansion - containment) / (expansion + containment) "O": { - "marker_O_over": +1.0, - "marker_O_under": -1.0, + "marker_O_expand": +1.0, + "marker_O_contain": -1.0, }, # L: coherence loss — repetition + low novelty "L": {