# Frozen exploratory lexical/geometry plan

Written 2026-10-10, before computing any lexical summaries, vectors or matching scores. `plan-freeze.json` records the UTC freeze time and SHA-256 of these exact bytes. This is a local exploratory analysis plan, not an externally registered or confirmatory study. Source shape and one example record were inspected only to establish the input schema.

## Input and scope

Use `base120/data/operators.json` from [hummbl-io/base120 at commit f27d603f401751a772fcade069038b45c248fe42](https://github.com/hummbl-io/base120/blob/f27d603f401751a772fcade069038b45c248fe42/base120/data/operators.json). Its exact Git blob bytes have SHA-256 `0dc1573448138fda771ecb46d709b14f99dfc1fcec43e2ca5e7492542c1e6ff1`. The source is a list of 120 records with string keys `code`, `name`, `transformation` and `definition`. Require unique codes, nonempty strings, exactly 20 records in each family, and code prefixes matching the family. Fail on a source-hash or schema/count mismatch; do not repair, omit or substitute records.

Read exact bytes from the pinned local Git object or an explicitly supplied file with the same hash. Provide an immutable public download URL for reproduction. Do not bundle the corpus. Its pinned NOTICE distinguishes Apache-licensed software from proprietary corpus definitions/names/codes; do not relabel the corpus as open-licensed data. Names and codes identify records; only `definition` supplies vector features. Neither family labels nor operator names are concatenated into the representation.

Family order is fixed as `P, IN, CO, DE, RE, SY`. Within each family, sort records lexicographically by code. The proposed matching is `(P,IN), (CO,DE), (RE,SY)`.

## Frozen lexical representation

For each definition, apply Unicode NFKC normalization and Python `str.casefold()`, then extract tokens with the ASCII regular expression `[a-z]+`. Thus punctuation/hyphens split tokens, digit sequences do not enter the vocabulary, and no stemming, lemmatization, n-grams or synonym expansion occurs. Remove the following exact lowercase tokens; this list must not be edited after observing outputs:

```text
a an and are as at be been being but by can cannot could did do does doing
for from had has have having how if in into is it its may might more most
must no nor not of on only or other our out over own same shall should so
some such than that the their them then there these they this those through
to too under until up very was we were what when where which while who why
will with would you your
```

This removes function words, including negation; that is a deliberate, limited lexical instrument, not a semantic model. No extra stopword is selected from observed term frequencies. Definitions containing family-label words keep those words. Report the exact-token occurrences of `perspective, inversion, composition, decomposition, recursion, systems` by assigned family to expose potential editorial label leakage; do not remove them after inspection.

Vocabulary is the sorted union of retained tokens across all 120 definitions. For document `i` and token `t`, use raw frequency `tf(i,t) = count(i,t)` and document frequency `df(t) = number of definitions containing t`. Define

```text
idf(t) = ln((1 + N) / (1 + df(t))) + 1, N = 120
w(i,t) = tf(i,t) * idf(t)
x_i = w_i / sqrt(sum_t w(i,t)^2)
```

Use natural logarithms and binary64 floats. A zero document vector stays zero and is explicitly counted; no replacement text or smoothing feature is added. Sum in sorted vocabulary/record order using `math.fsum` where sums are needed. No randomness or fitted external model is used.

## Lexical outputs and centroids

Report retained token count and distinct-token count per record, aggregated length summaries and vocabulary sizes by family, zero-vector counts, and hashes of the ordered vocabulary and numerical representation. Do not reproduce definitions in the output. Report all 15 family-pair vocabulary overlap coefficients `|V_a intersection V_b| / min(|V_a|, |V_b|)`; an empty vocabulary makes that overlap undefined. This overlap is not a semantic similarity estimate.

For each family `f`, compute the arithmetic mean `c_f = (1/20) sum_(i in f) x_i`. **Do not L2-normalize centroids again and do not center them.** Report centroid norms, the six-by-six centroid cosine matrix and every paired centroid Euclidean distance. Means can have different norms because definitions within families reuse vocabulary to different degrees.

## All matchings, identical scores

Enumerate perfect matchings recursively: take the first remaining family in the fixed order, pair it with each later remaining family in that order, and recurse. This gives exactly `5 * 3 * 1 = 15` unique matchings. Orient every pair in family-order direction; pair-order is the recursion order. Never select alternatives based on results.

For each matching `M = ((a,b),(c,d),(e,f))`, form three contrasts `d_1 = c_a-c_b`, `d_2 = c_c-c_d`, `d_3 = c_e-c_f`. Compute the same two scores for all 15:

1. `mean_paired_distance = (||d_1|| + ||d_2|| + ||d_3||)/3`; larger receives the better descriptive rank.
2. `max_abs_contrast_cosine = max_(i<j) |dot(d_i,d_j)/(||d_i|| ||d_j||)|`; smaller receives the better descriptive rank.

Report all three contrast norms, all three signed contrast cosines, both scores and both ranks for every matching. A cosine is undefined when either vector norm is at most `1e-12`; JSON uses `null`. If any contrast cosine is undefined, that matching's second score and rank are undefined, without omitting the matching. A zero contrast contributes zero to the distance mean. No arbitrary orthogonality margin or significance threshold is introduced.

Rank ties use absolute score tolerance `1e-12`: rank is one plus the number of defined scores better by more than the tolerance; tied count is the number within the tolerance. Retain canonical enumeration order when scores tie. Compute ranks and comparisons before presentation rounding. Serialize numerical outputs rounded to 12 decimal places, using null for undefined quantities and disallowing NaN/infinity. Record Python version separately from deterministic scientific outputs.

For the proposed matching only, optionally report favorable-tail counts over the **uniform descriptive reference of all 15 matchings, including the proposal**: distance count uses `score >= proposed - 1e-12`; maximum-cosine count uses `score <= proposed + 1e-12`. Denominator is always 15. If any of the 15 relevant scores is undefined, that tail is undefined, without renormalizing over the defined subset. These fractions are not p-values from sampled cognitive tasks or people. No multiple-testing or statistical-significance claim is made.

## Reproduction and interpretation

Write standard-library Python analysis and meaningful synthetic tests for 15-matching coverage, cosine/zero-vector handling, ranking ties and deterministic outputs. Include input hash, plan hash, code hash and exact invocation in a separate run receipt. The script must validate the plan hash before analysis. Re-running on the same input and code in the same numerical environment must produce byte-identical scientific JSON and tables. A standalone plot may display all 15 pairs of scores and identify the proposed matching; its rendering dependencies do not enter the numerical analysis.

No parameter changes, feature selection or score changes follow inspection of outputs. Correct implementation errors transparently and retain the frozen plan. If a different representation is later desired, label it a separate new exploratory analysis rather than replacing this one.

Sparse, largely disjoint definition vocabularies can yield near-orthogonal centroids. Contrasts involving four distinct such centroids will also tend toward zero cosine for **any** perfect matching. Consequently, near-zero contrast cosines cannot by themselves support the proposed pairings. Results describe this curated text snapshot and this representation; they do not establish semantic opposition, independent cognitive axes, reliable action selection, human flourishing, practical effectiveness or results of an unperformed rater/task study.
