universal-physics-tensor 0.46.0 → 0.47.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/README.md +61 -43
  2. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  3. package/dist/atlas/diffusion/bridges-closure.js +34 -8
  4. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  5. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  6. package/dist/atlas/oscillators/bridges-exact.js +6 -3
  7. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  8. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  9. package/dist/atlas/oscillators/bridges-limits.js +13 -1
  10. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  11. package/dist/atlas/types.d.ts +18 -1
  12. package/dist/atlas/types.d.ts.map +1 -1
  13. package/dist/atlas/types.js.map +1 -1
  14. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  15. package/dist/atlas/waves/bridges-closure.js +7 -4
  16. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  17. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  18. package/dist/atlas/waves/bridges.js +2 -1
  19. package/dist/atlas/waves/bridges.js.map +1 -1
  20. package/dist/bridges/be51-lensing-confrontation.d.ts.map +1 -1
  21. package/dist/bridges/be51-lensing-confrontation.js +5 -3
  22. package/dist/bridges/be51-lensing-confrontation.js.map +1 -1
  23. package/dist/bridges/be52-mercury-confrontation.d.ts.map +1 -1
  24. package/dist/bridges/be52-mercury-confrontation.js +4 -1
  25. package/dist/bridges/be52-mercury-confrontation.js.map +1 -1
  26. package/dist/bridges/bridge-equations.d.ts +1 -2
  27. package/dist/bridges/bridge-equations.d.ts.map +1 -1
  28. package/dist/bridges/bridge-equations.js +1 -2
  29. package/dist/bridges/bridge-equations.js.map +1 -1
  30. package/dist/bridges/confrontations.d.ts.map +1 -1
  31. package/dist/bridges/confrontations.js +7 -0
  32. package/dist/bridges/confrontations.js.map +1 -1
  33. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +2 -45
  34. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
  35. package/dist/bridges/equations/be-35-conformal-bootstrap.js +2 -74
  36. package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
  37. package/dist/bridges/index.js +1 -1
  38. package/dist/bridges/index.js.map +1 -1
  39. package/dist/bridges/observations/types.d.ts +14 -0
  40. package/dist/bridges/observations/types.d.ts.map +1 -1
  41. package/dist/bridges/observations/types.js.map +1 -1
  42. package/dist/cli/commands/confront.d.ts.map +1 -1
  43. package/dist/cli/commands/confront.js +8 -1
  44. package/dist/cli/commands/confront.js.map +1 -1
  45. package/dist/cli/commands/derive.d.ts.map +1 -1
  46. package/dist/cli/commands/derive.js +40 -9
  47. package/dist/cli/commands/derive.js.map +1 -1
  48. package/dist/cli/commands/discover.d.ts.map +1 -1
  49. package/dist/cli/commands/discover.js +46 -27
  50. package/dist/cli/commands/discover.js.map +1 -1
  51. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  52. package/dist/cli/commands/evaluate.js +2 -1
  53. package/dist/cli/commands/evaluate.js.map +1 -1
  54. package/dist/cli/commands/explain.d.ts.map +1 -1
  55. package/dist/cli/commands/explain.js +19 -6
  56. package/dist/cli/commands/explain.js.map +1 -1
  57. package/dist/cli/commands/map.d.ts.map +1 -1
  58. package/dist/cli/commands/map.js +46 -20
  59. package/dist/cli/commands/map.js.map +1 -1
  60. package/dist/cli/commands/path.d.ts.map +1 -1
  61. package/dist/cli/commands/path.js +90 -7
  62. package/dist/cli/commands/path.js.map +1 -1
  63. package/dist/cli/commands/probe.d.ts.map +1 -1
  64. package/dist/cli/commands/probe.js +59 -2
  65. package/dist/cli/commands/probe.js.map +1 -1
  66. package/dist/cli/commands/regime.d.ts +27 -0
  67. package/dist/cli/commands/regime.d.ts.map +1 -1
  68. package/dist/cli/commands/regime.js +57 -3
  69. package/dist/cli/commands/regime.js.map +1 -1
  70. package/dist/cli/errors.d.ts +13 -1
  71. package/dist/cli/errors.d.ts.map +1 -1
  72. package/dist/cli/errors.js +13 -1
  73. package/dist/cli/errors.js.map +1 -1
  74. package/dist/cli/main.d.ts.map +1 -1
  75. package/dist/cli/main.js +10 -5
  76. package/dist/cli/main.js.map +1 -1
  77. package/dist/cli-api.d.ts +5 -1
  78. package/dist/cli-api.d.ts.map +1 -1
  79. package/dist/cli-api.js +5 -1
  80. package/dist/cli-api.js.map +1 -1
  81. package/dist/composition/canonical-compare.d.ts +77 -0
  82. package/dist/composition/canonical-compare.d.ts.map +1 -0
  83. package/dist/composition/canonical-compare.js +309 -0
  84. package/dist/composition/canonical-compare.js.map +1 -0
  85. package/dist/composition/canonical-prefactors.d.ts +32 -0
  86. package/dist/composition/canonical-prefactors.d.ts.map +1 -0
  87. package/dist/composition/canonical-prefactors.js +80 -0
  88. package/dist/composition/canonical-prefactors.js.map +1 -0
  89. package/dist/composition/discovery.d.ts +20 -3
  90. package/dist/composition/discovery.d.ts.map +1 -1
  91. package/dist/composition/discovery.js +30 -4
  92. package/dist/composition/discovery.js.map +1 -1
  93. package/dist/composition/explain.d.ts +9 -1
  94. package/dist/composition/explain.d.ts.map +1 -1
  95. package/dist/composition/explain.js +34 -8
  96. package/dist/composition/explain.js.map +1 -1
  97. package/dist/composition/grounding.d.ts.map +1 -1
  98. package/dist/composition/grounding.js +6 -1
  99. package/dist/composition/grounding.js.map +1 -1
  100. package/dist/composition/probe/corpus.d.ts +12 -0
  101. package/dist/composition/probe/corpus.d.ts.map +1 -1
  102. package/dist/composition/probe/corpus.js +100 -0
  103. package/dist/composition/probe/corpus.js.map +1 -1
  104. package/dist/composition/probe/generator.d.ts +14 -0
  105. package/dist/composition/probe/generator.d.ts.map +1 -1
  106. package/dist/composition/probe/generator.js +24 -2
  107. package/dist/composition/probe/generator.js.map +1 -1
  108. package/dist/composition/probe/pipeline.d.ts +5 -0
  109. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  110. package/dist/composition/probe/pipeline.js +20 -3
  111. package/dist/composition/probe/pipeline.js.map +1 -1
  112. package/dist/composition/probe/report.d.ts.map +1 -1
  113. package/dist/composition/probe/report.js +2 -0
  114. package/dist/composition/probe/report.js.map +1 -1
  115. package/dist/composition/user-equation.d.ts +8 -6
  116. package/dist/composition/user-equation.d.ts.map +1 -1
  117. package/dist/composition/user-equation.js +44 -29
  118. package/dist/composition/user-equation.js.map +1 -1
  119. package/dist/core/constants.d.ts +13 -0
  120. package/dist/core/constants.d.ts.map +1 -1
  121. package/dist/core/constants.js +13 -0
  122. package/dist/core/constants.js.map +1 -1
  123. package/dist/diff/bridge-gradient.d.ts +1 -1
  124. package/dist/diff/bridge-gradient.js +1 -1
  125. package/package.json +45 -3
@@ -0,0 +1,309 @@
1
+ /**
2
+ * Compare a user's formula with the canonical (textbook) equation it restates.
3
+ *
4
+ * Dimensional analysis cannot see a dimensionless prefactor, so `T = π√(ℓ/g)`
5
+ * and `K = m v²` pass every dimensional check. When the registry holds an
6
+ * equation with the same target and the same variables, this module evaluates
7
+ * both sides at {@link FIXED_POINT_EXPONENTS}, fixed points documented here, and
8
+ * classifies the ratio `yours / canonical`:
9
+ *
10
+ * - `agrees` — constant and equal to 1: the prefactor is checked and right.
11
+ * - `factor` — constant but not 1: the forms agree and the prefactor does not.
12
+ * - `form` — not constant across the points: a different law.
13
+ * - `prefactor-unchecked` — the forms agree, but the registry records the law
14
+ * only up to a constant or only dimensionally, so it holds no prefactor to
15
+ * compare with. That is reported as unchecked, never as agreement.
16
+ * - `not-compared` — the variables could not be aligned, or an evaluation
17
+ * failed; `detail` says which.
18
+ *
19
+ * The points are fixed so the output is identical on every run.
20
+ *
21
+ * INTERNAL — surfaced by `upt map --equation` and `upt derive --formula`.
22
+ *
23
+ * @module composition/canonical-compare
24
+ */
25
+ import { equals } from '../dimensional/algebra.js';
26
+ import { CANONICAL_EQUATIONS } from '../canonical/registry.js';
27
+ import { CONSTANTS } from './symbolic-constants.js';
28
+ import { evalExpr } from './expr-eval.js';
29
+ import { canonicalPrefactor } from './canonical-prefactors.js';
30
+ import { parseUserEquation, resolveToCatalogName } from './user-equation.js';
31
+ import { parsePhysics } from '../numerical/formula-registry.js';
32
+ import { DIMENSIONLESS } from '../dimensional/types.js';
33
+ /**
34
+ * The comparison points: variable `i` (in sorted name order) takes the value
35
+ * `(1.7 + i)^p` at point `p` of this list, the scheme `upt derive` uses to
36
+ * recover a prefactor. Each variable has its own base, so the RATIOS between
37
+ * variables change from point to point too. A common scale factor would leave
38
+ * every ratio such as ℓ/g fixed, and `T ∝ ℓ/g` would then pass as the form of
39
+ * `T ∝ √(ℓ/g)`.
40
+ * @internal
41
+ */
42
+ const FIXED_POINT_EXPONENTS = [1, 1.3, 1.6];
43
+ /** Relative tolerance for "the ratio is constant" and "the ratio is 1". @internal */
44
+ const RATIO_TOLERANCE = 1e-9;
45
+ const normalize = (name) => name.replace(/_/g, '-');
46
+ /**
47
+ * Pair each user source with one canonical variable: by name first, then by a dimension that
48
+ * exactly one remaining canonical variable carries, repeated until nothing changes. `null` when the
49
+ * sources cannot be this entry's variables (a count, a name without a dimension, or a dimension no
50
+ * variable left carries); `'ambiguous'` when every source has a same-dimension partner but the
51
+ * pairing is not unique. Returns user name → canonical name, both normalized.
52
+ */
53
+ function pairSources(sources, variables) {
54
+ if (sources.length !== variables.length)
55
+ return null;
56
+ const pairs = new Map();
57
+ const freeVars = new Map(variables.map((v) => [normalize(v.name), v.dim]));
58
+ let open = sources.filter((s) => {
59
+ if (!freeVars.has(s.name))
60
+ return true;
61
+ pairs.set(s.name, s.name);
62
+ freeVars.delete(s.name);
63
+ return false;
64
+ });
65
+ let progress = true;
66
+ while (open.length > 0 && progress) {
67
+ progress = false;
68
+ for (const s of open) {
69
+ if (s.dim === undefined)
70
+ return null;
71
+ const partners = [...freeVars].filter(([, dim]) => equals(dim, s.dim));
72
+ if (partners.length === 0)
73
+ return null;
74
+ if (partners.length === 1) {
75
+ pairs.set(s.name, partners[0][0]);
76
+ freeVars.delete(partners[0][0]);
77
+ progress = true;
78
+ }
79
+ }
80
+ open = open.filter((s) => !pairs.has(s.name));
81
+ }
82
+ return open.length === 0 ? pairs : 'ambiguous';
83
+ }
84
+ /** A governing variable that is a registered physical constant of the same dimension. */
85
+ function isConstant(v) {
86
+ const c = CONSTANTS[v.name];
87
+ return c !== undefined && equals(c.dim, v.dim);
88
+ }
89
+ /** The free (non-constant, non-literal) symbols of an AST, with their dimensions. */
90
+ function freeSymbols(node, out) {
91
+ if (node.kind === 'symbol') {
92
+ const literal = Number.isFinite(Number(node.name));
93
+ if (!literal && CONSTANTS[node.name] === undefined)
94
+ out.set(node.name, node.dim);
95
+ return out;
96
+ }
97
+ const args = node.args ?? [];
98
+ for (const a of args)
99
+ freeSymbols(a, out);
100
+ return out;
101
+ }
102
+ /**
103
+ * Map each free AST symbol to a governing variable: by name first, then by a
104
+ * dimension that exactly one unassigned variable carries. `null` when that fails.
105
+ */
106
+ function alignSymbols(symbols, governing) {
107
+ if (symbols.size !== governing.length)
108
+ return null;
109
+ const assignment = new Map();
110
+ const free = new Set(governing.map((g) => g.name));
111
+ for (const s of [...symbols.keys()].sort()) {
112
+ if (free.has(s)) {
113
+ assignment.set(s, s);
114
+ free.delete(s);
115
+ }
116
+ }
117
+ for (const [s, dim] of [...symbols.entries()].sort(([a], [b]) => a.localeCompare(b))) {
118
+ if (assignment.has(s))
119
+ continue;
120
+ const candidates = governing.filter((g) => free.has(g.name) && equals(g.dim, dim));
121
+ if (candidates.length !== 1)
122
+ return null;
123
+ assignment.set(s, candidates[0].name);
124
+ free.delete(candidates[0].name);
125
+ }
126
+ return assignment;
127
+ }
128
+ function classify(entry, ratios, recordsPrefactor) {
129
+ const base = { id: entry.id, name: entry.name };
130
+ const r0 = ratios[0];
131
+ const constant = ratios.every((r) => Math.abs(r / r0 - 1) <= RATIO_TOLERANCE);
132
+ if (!constant)
133
+ return { ...base, kind: 'form' };
134
+ if (!recordsPrefactor) {
135
+ return {
136
+ ...base,
137
+ kind: 'prefactor-unchecked',
138
+ detail: entry.epistemicStatus === 'dimensional'
139
+ ? 'the registry records its dimensional form only'
140
+ : 'the registry records it only up to a constant',
141
+ };
142
+ }
143
+ return Math.abs(r0 - 1) <= RATIO_TOLERANCE
144
+ ? { ...base, kind: 'agrees', ratio: r0 }
145
+ : { ...base, kind: 'factor', ratio: r0 };
146
+ }
147
+ /**
148
+ * Compare a user formula with every canonical equation that has the same
149
+ * target and the same non-constant variables. The target must match by name
150
+ * (after `_` → `-`): pairing it by dimension would reach every law of that
151
+ * dimension. Each source matches a variable by name, or, when the source
152
+ * carries a dimension, by a dimension exactly one remaining variable carries
153
+ * (`velocity` → CE-kinetic-energy's `speed`); such pairs are listed in
154
+ * `paired`. A non-unique pairing is reported as `not-compared`, never guessed.
155
+ * `evaluateUser` receives values keyed by the user's (normalized) source names.
156
+ * Returns one comparison per matching entry, in registry order; empty when
157
+ * no entry matches.
158
+ *
159
+ * @internal
160
+ */
161
+ export function compareWithCanonical(target, sources, evaluateUser, entries = CANONICAL_EQUATIONS) {
162
+ const wantTarget = normalize(target);
163
+ const wantSources = new Map();
164
+ for (const s of sources) {
165
+ const name = normalize(typeof s === 'string' ? s : s.name);
166
+ if (!wantSources.has(name))
167
+ wantSources.set(name, typeof s === 'string' ? { name } : { name, dim: s.dim });
168
+ }
169
+ const results = [];
170
+ for (const entry of entries) {
171
+ const d = entry.dimensional;
172
+ if (normalize(d.target.name) !== wantTarget)
173
+ continue;
174
+ const variables = d.governing.filter((g) => !isConstant(g));
175
+ const pairing = pairSources([...wantSources.values()], variables);
176
+ if (pairing === null)
177
+ continue;
178
+ if (pairing === 'ambiguous') {
179
+ results.push({
180
+ id: entry.id,
181
+ name: entry.name,
182
+ kind: 'not-compared',
183
+ detail: 'your variable names differ from its names, and they pair with its variables by dimension in more than one way',
184
+ });
185
+ continue;
186
+ }
187
+ const byDimension = [...pairing].filter(([u, c]) => u !== c).sort(([a], [b]) => a.localeCompare(b));
188
+ const paired = byDimension.length > 0 ? { paired: byDimension } : {};
189
+ const names = variables.map((g) => normalize(g.name)).sort();
190
+ const points = FIXED_POINT_EXPONENTS.map((p) => Object.fromEntries(names.map((n, i) => [n, Math.pow(1.7 + i, p)])));
191
+ const userAt = (p) => evaluateUser(Object.fromEntries([...pairing].map(([u, c]) => [u, p[c]])));
192
+ // A prefactor the entry does not record may come from the sourced table,
193
+ // which lives outside the pinned src/canonical tree.
194
+ const tabled = entry.epistemicStatus === 'fully-quantitative' ? undefined : canonicalPrefactor(entry.id);
195
+ const factor = tabled ?? 1;
196
+ let canonicalAt;
197
+ if (entry.scalarAst !== undefined) {
198
+ const alignment = alignSymbols(freeSymbols(entry.scalarAst, new Map()), variables);
199
+ if (alignment === null) {
200
+ results.push({
201
+ id: entry.id,
202
+ name: entry.name,
203
+ kind: 'not-compared',
204
+ detail: 'its variables could not be aligned by name or by a unique dimension',
205
+ ...paired,
206
+ });
207
+ continue;
208
+ }
209
+ const ast = entry.scalarAst;
210
+ canonicalAt = (p) => factor * evalExpr(ast, Object.fromEntries([...alignment].map(([sym, g]) => [sym, p[normalize(g)]])));
211
+ }
212
+ else if (d.monomial !== null) {
213
+ const monomial = d.monomial;
214
+ canonicalAt = (p) => factor * Object.entries(monomial).reduce((acc, [n, e]) => acc * Math.pow(p[normalize(n)] ?? 1, e), 1);
215
+ }
216
+ else {
217
+ continue;
218
+ }
219
+ let ratios;
220
+ try {
221
+ ratios = points.map((p) => userAt(p) / canonicalAt(p));
222
+ }
223
+ catch (e) {
224
+ results.push({
225
+ id: entry.id,
226
+ name: entry.name,
227
+ kind: 'not-compared',
228
+ detail: `an evaluation failed (${e instanceof Error ? e.message : String(e)})`,
229
+ ...paired,
230
+ });
231
+ continue;
232
+ }
233
+ if (!ratios.every((r) => Number.isFinite(r) && r !== 0)) {
234
+ results.push({ id: entry.id, name: entry.name, kind: 'not-compared', detail: 'a ratio was zero or not finite', ...paired });
235
+ continue;
236
+ }
237
+ results.push({
238
+ ...classify(entry, ratios, entry.epistemicStatus === 'fully-quantitative' || tabled !== undefined),
239
+ ...paired,
240
+ });
241
+ }
242
+ return results;
243
+ }
244
+ /**
245
+ * Compare a `TARGET = EXPR` user equation (the `upt map --equation` input) with
246
+ * the canonical registry. Names resolve onto `catalogDims` the way
247
+ * `analyzeUserEquation` resolves them; `pi` and `tau` are the only named numbers.
248
+ * Returns `[]` when the equation does not parse or no entry matches.
249
+ *
250
+ * @internal
251
+ */
252
+ export async function compareUserEquation(equation, catalogDims) {
253
+ const eq = await parseUserEquation(equation);
254
+ const catalogNames = new Set(catalogDims.keys());
255
+ const resolved = new Map(eq.sources.map((s) => [s, resolveToCatalogName(s, catalogNames) ?? s]));
256
+ const target = resolveToCatalogName(eq.target, catalogNames) ?? eq.target;
257
+ const dims = {};
258
+ for (const [name, c] of Object.entries(CONSTANTS))
259
+ dims[name] = c.dim;
260
+ for (const [s, r] of resolved)
261
+ dims[s] = catalogDims.get(r) ?? DIMENSIONLESS;
262
+ let expr;
263
+ try {
264
+ expr = (await parsePhysics(equation.slice(equation.indexOf('=') + 1), dims)).expr;
265
+ }
266
+ catch {
267
+ return [];
268
+ }
269
+ // A name the catalog does not know carries no dimension, so it never pairs by dimension.
270
+ const sources = [...resolved.values()].map((r) => {
271
+ const dim = catalogDims.get(r);
272
+ return dim === undefined ? r : { name: r, dim };
273
+ });
274
+ return compareWithCanonical(target, sources, (values) => evalExpr(expr, {
275
+ pi: Math.PI,
276
+ tau: 2 * Math.PI,
277
+ ...Object.fromEntries([...resolved].map(([s, r]) => [s, values[normalize(r)]])),
278
+ }));
279
+ }
280
+ /**
281
+ * The report lines for a comparison result, shared by `upt map --equation` and
282
+ * `upt derive`. An empty result is itself a line: a dimensional MATCH never
283
+ * checks a prefactor, and the reader must not take silence for a check.
284
+ * @internal
285
+ */
286
+ export function describeComparisons(cs) {
287
+ return cs.length === 0
288
+ ? ['· no canonical equation has this target and these variables, so the prefactor is NOT checked']
289
+ : cs.map(describeComparison);
290
+ }
291
+ /** One report line per comparison. @internal */
292
+ export function describeComparison(c) {
293
+ const pairs = c.paired?.map(([yours, its]) => `your ${yours} as its ${its}`).join(', ');
294
+ const who = `${c.id} (${c.name}${pairs === undefined ? '' : `; ${pairs}, paired by dimension`})`;
295
+ const n = FIXED_POINT_EXPONENTS.length;
296
+ switch (c.kind) {
297
+ case 'agrees':
298
+ return `✓ agrees with ${who}, prefactor included: yours/canonical = 1 at ${n} fixed points`;
299
+ case 'factor':
300
+ return `⚠ differs from ${who} by a constant factor: yours/canonical = ${c.ratio.toPrecision(6)} at ${n} fixed points`;
301
+ case 'form':
302
+ return `⚠ differs in FORM from ${who}: yours/canonical is not constant across ${n} fixed points`;
303
+ case 'prefactor-unchecked':
304
+ return `· same form as ${who}, but ${c.detail}, so your prefactor is NOT checked`;
305
+ case 'not-compared':
306
+ return `· ${who} shares your target and variables, but was not compared: ${c.detail}`;
307
+ }
308
+ }
309
+ //# sourceMappingURL=canonical-compare.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-compare.js","sourceRoot":"","sources":["../../src/composition/canonical-compare.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Exact prefactors for canonical equations that `src/canonical` records only
3
+ * dimensionally or only up to a constant.
4
+ *
5
+ * CE-pendulum-period is a monomial and CE-kinetic-energy's AST is `m·v²`, so a
6
+ * user formula wrong by 2π or ½ could not be caught (persona findings L2, L7).
7
+ * `src/canonical` is a pinned Criterion 3 input tree, so the prefactors live
8
+ * here, outside it (Mothership ruling 2026-09-25). Each prefactor multiplies the
9
+ * entry's AST, or its monomial when it has no AST; a test holds that neither
10
+ * carries a constant of its own.
11
+ *
12
+ * Every quote is verbatim wikitext from the pinned Wikipedia revision in its
13
+ * locator, fetched and matched on 2026-09-25.
14
+ *
15
+ * @module composition/canonical-prefactors
16
+ */
17
+ /** One sourced prefactor. @internal */
18
+ export interface CanonicalPrefactor {
19
+ /** A `CanonicalEquation.id`. */
20
+ readonly id: string;
21
+ /** The exact dimensionless factor in front of the entry's AST or monomial. */
22
+ readonly prefactor: number;
23
+ /** Verbatim source text the factor is read from. */
24
+ readonly quote: string;
25
+ /** Where the quote is: page, revision id and wikitext line. */
26
+ readonly locator: string;
27
+ }
28
+ /** The sourced prefactors, by canonical id. @internal */
29
+ export declare const CANONICAL_PREFACTORS: readonly CanonicalPrefactor[];
30
+ /** The sourced prefactor of a canonical entry, or `undefined`. @internal */
31
+ export declare function canonicalPrefactor(id: string): number | undefined;
32
+ //# sourceMappingURL=canonical-prefactors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-prefactors.d.ts","sourceRoot":"","sources":["../../src/composition/canonical-prefactors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,uCAAuC;AACvC,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,8EAA8E;IAC9E,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,oDAAoD;IACpD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,+DAA+D;IAC/D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAED,yDAAyD;AACzD,eAAO,MAAM,oBAAoB,EAAE,SAAS,kBAAkB,EAyD7D,CAAC;AAEF,4EAA4E;AAC5E,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjE"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Exact prefactors for canonical equations that `src/canonical` records only
3
+ * dimensionally or only up to a constant.
4
+ *
5
+ * CE-pendulum-period is a monomial and CE-kinetic-energy's AST is `m·v²`, so a
6
+ * user formula wrong by 2π or ½ could not be caught (persona findings L2, L7).
7
+ * `src/canonical` is a pinned Criterion 3 input tree, so the prefactors live
8
+ * here, outside it (Mothership ruling 2026-09-25). Each prefactor multiplies the
9
+ * entry's AST, or its monomial when it has no AST; a test holds that neither
10
+ * carries a constant of its own.
11
+ *
12
+ * Every quote is verbatim wikitext from the pinned Wikipedia revision in its
13
+ * locator, fetched and matched on 2026-09-25.
14
+ *
15
+ * @module composition/canonical-prefactors
16
+ */
17
+ /** The sourced prefactors, by canonical id. @internal */
18
+ export const CANONICAL_PREFACTORS = [
19
+ {
20
+ id: 'CE-pendulum-period',
21
+ prefactor: 2 * Math.PI,
22
+ quote: String.raw `T_0 = 2\pi\sqrt{\frac \ell g}`,
23
+ locator: "Wikipedia, 'Pendulum (mechanics)', revision 1374595895, wikitext line 171",
24
+ },
25
+ {
26
+ id: 'CE-kinetic-energy',
27
+ prefactor: 0.5,
28
+ quote: String.raw `E_\text{k} = \frac{1}{2} mv^2`,
29
+ locator: "Wikipedia, 'Kinetic energy', revision 1370969006, wikitext line 56",
30
+ },
31
+ {
32
+ id: 'CE-rotational-kinetic-energy',
33
+ prefactor: 0.5,
34
+ quote: String.raw `E_\text{rotational} = \tfrac{1}{2} I \omega^2`,
35
+ locator: "Wikipedia, 'Rotational energy', revision 1258577842, wikitext line 3",
36
+ },
37
+ {
38
+ id: 'CE-capacitor-energy',
39
+ prefactor: 0.5,
40
+ quote: String.raw `W = \frac{1}{2}CV^2`,
41
+ locator: "Wikipedia, 'Capacitor', revision 1375788837, wikitext line 137",
42
+ },
43
+ {
44
+ id: 'CE-schwarzschild-radius',
45
+ prefactor: 2,
46
+ quote: String.raw `Schwarzschild radius{{br}}<math display="inline">\frac{2GM}{c^2}</math>`,
47
+ locator: "Wikipedia, 'Schwarzschild radius', revision 1373854769, wikitext line 25",
48
+ },
49
+ {
50
+ // a³/T² = GM/(4π²) for M ≫ m gives T = 2π √(a³/(GM)); the canonical monomial is a^1.5 (GM)^-0.5.
51
+ id: 'CE-kepler-third',
52
+ prefactor: 2 * Math.PI,
53
+ quote: String.raw `\frac{a^3}{T^2} = \frac{G(M + m)}{4\pi^2} \approx \frac{GM}{4\pi^2}`,
54
+ locator: "Wikipedia, 'Kepler's laws of planetary motion', revision 1376360196, wikitext line 232",
55
+ },
56
+ {
57
+ id: 'CE-lc-resonance',
58
+ prefactor: 1,
59
+ quote: String.raw `\omega_0 = \frac{1}{\sqrt{LC}},`,
60
+ locator: "Wikipedia, 'LC circuit', revision 1350658867, wikitext line 66",
61
+ },
62
+ {
63
+ // The Stokes friction coefficient ζ = 6πηr; the drag at speed v is F = ζ v.
64
+ id: 'CE-stokes-drag',
65
+ prefactor: 6 * Math.PI,
66
+ quote: String.raw `\zeta = 6 \pi \, \eta \, r,`,
67
+ locator: "Wikipedia, 'Einstein relation (kinetic theory)', revision 1353047788, wikitext line 77",
68
+ },
69
+ {
70
+ id: 'CE-stokes-einstein',
71
+ prefactor: 1 / (6 * Math.PI),
72
+ quote: String.raw `D = \frac{k_\text{B} T}{6\pi\,\eta\,r}.`,
73
+ locator: "Wikipedia, 'Einstein relation (kinetic theory)', revision 1353047788, wikitext line 79",
74
+ },
75
+ ];
76
+ /** The sourced prefactor of a canonical entry, or `undefined`. @internal */
77
+ export function canonicalPrefactor(id) {
78
+ return CANONICAL_PREFACTORS.find((p) => p.id === id)?.prefactor;
79
+ }
80
+ //# sourceMappingURL=canonical-prefactors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"canonical-prefactors.js","sourceRoot":"","sources":["../../src/composition/canonical-prefactors.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAcH,yDAAyD;AACzD,MAAM,CAAC,MAAM,oBAAoB,GAAkC;IACjE;QACE,EAAE,EAAE,oBAAoB;QACxB,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;QACtB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA,+BAA+B;QAChD,OAAO,EAAE,2EAA2E;KACrF;IACD;QACE,EAAE,EAAE,mBAAmB;QACvB,SAAS,EAAE,GAAG;QACd,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA,+BAA+B;QAChD,OAAO,EAAE,oEAAoE;KAC9E;IACD;QACE,EAAE,EAAE,8BAA8B;QAClC,SAAS,EAAE,GAAG;QACd,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA,+CAA+C;QAChE,OAAO,EAAE,sEAAsE;KAChF;IACD;QACE,EAAE,EAAE,qBAAqB;QACzB,SAAS,EAAE,GAAG;QACd,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA,qBAAqB;QACtC,OAAO,EAAE,gEAAgE;KAC1E;IACD;QACE,EAAE,EAAE,yBAAyB;QAC7B,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA,yEAAyE;QAC1F,OAAO,EAAE,0EAA0E;KACpF;IACD;QACE,iGAAiG;QACjG,EAAE,EAAE,iBAAiB;QACrB,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;QACtB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA,qEAAqE;QACtF,OAAO,EAAE,wFAAwF;KAClG;IACD;QACE,EAAE,EAAE,iBAAiB;QACrB,SAAS,EAAE,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA,iCAAiC;QAClD,OAAO,EAAE,gEAAgE;KAC1E;IACD;QACE,4EAA4E;QAC5E,EAAE,EAAE,gBAAgB;QACpB,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE;QACtB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA,6BAA6B;QAC9C,OAAO,EAAE,wFAAwF;KAClG;IACD;QACE,EAAE,EAAE,oBAAoB;QACxB,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC;QAC5B,KAAK,EAAE,MAAM,CAAC,GAAG,CAAA,yCAAyC;QAC1D,OAAO,EAAE,wFAAwF;KAClG;CACF,CAAC;AAEF,4EAA4E;AAC5E,MAAM,UAAU,kBAAkB,CAAC,EAAU;IAC3C,OAAO,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,SAAS,CAAC;AAClE,CAAC"}
@@ -80,6 +80,22 @@ export interface VettedCandidate {
80
80
  /** The magnitude gate read at least one endpoint value from the graph at
81
81
  * the anchor (no static table entry) rather than the sourced table. */
82
82
  readonly magnitudeUsedAnchor: boolean;
83
+ /**
84
+ * The magnitude comparison used an anchor-derived value, and the ratio of the
85
+ * two magnitudes does NOT move when every anchor input is rescaled by
86
+ * {@link ANCHOR_PROBE_FACTOR}. The graph then fixes the ratio at every
87
+ * anchor, so agreement in magnitude is an identity of the graph and not
88
+ * evidence for the identification. The case that exposed it: the anchor sets
89
+ * the temperature to the Hawking temperature of the anchor mass M, and then
90
+ * the thermal wavelength is exactly 4π ℓ_P for EVERY M. Its anchor-derived
91
+ * magnitude is not a representative magnitude of the quantity at all.
92
+ * A quantity whose value really is a constant belongs in the
93
+ * representative-value table, where it is not anchor-derived.
94
+ * A clash stays a clash (the graph itself fixes the two apart); only a pass is
95
+ * withheld, in `describeGrounding`. Optional on the type so hand-built
96
+ * candidates need not state it; the funnel always sets it.
97
+ */
98
+ readonly magnitudeAnchorInvariant?: boolean;
83
99
  /**
84
100
  * One endpoint name's hyphen-token set is a strict subset of the other's
85
101
  * (`mass` ⊂ `reference-mass`) — a generic↔specific identification of the
@@ -93,9 +109,10 @@ export interface VettedCandidate {
93
109
  * single-anchor graph cannot make). Checked first.
94
110
  * - `contradictory` — breaks numerical consistency (a graph falsification).
95
111
  * - `axis-clash` — the identification's stated `scale`/`force` regime
96
- * attributes disagree (an IDENTITY falsifier — see D1
97
- * module docs; "identification falsified, stated
98
- * regimes differ", not "no connection possible").
112
+ * attributes disagree. A regime-LABEL prior against a
113
+ * literal identity (D1), not a physical test: it
114
+ * compares catalog labels and runs no computation, so
115
+ * it is never counted or described as a falsification.
99
116
  * - `promising` — consistent AND connects disconnected physics AND
100
117
  * unlocks ≥1 quantity. Worth physicist review.
101
118
  * - `inert` — consistent but structurally/numerically idle (a
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/composition/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.d.ts","sourceRoot":"","sources":["../../src/composition/discovery.ts"],"names":[],"mappings":"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"}
@@ -60,7 +60,7 @@ export const REGISTRY_ATTRIBUTES_BY_NAME = (() => {
60
60
  }
61
61
  return m;
62
62
  })();
63
- // The axes the D1 identity gate falsifies on are `GATE_AXES`, imported from the
63
+ // The axes the D1 regime-label gate compares are `GATE_AXES`, imported from the
64
64
  // `axes.ts` registry (`AXES.filter(gated)`) at the top of this module. Currently
65
65
  // scale + force; the 2026-07-05 extensible-axis expansion added
66
66
  // symmetry/topology/statistics as UNGATED attributes (they only abstain until the
@@ -121,6 +121,15 @@ function quantityComponents(edges, idents) {
121
121
  return roots;
122
122
  }
123
123
  const ANCHOR_DEFAULT = { mass: M_SUN_KG };
124
+ /**
125
+ * Factor every anchor input is multiplied by to probe whether a magnitude ratio
126
+ * depends on the anchor at all (persona finding L3). Three decades moves any
127
+ * log-ratio that depends on the anchor far beyond {@link ANCHOR_INVARIANCE_TOL}.
128
+ * @internal
129
+ */
130
+ const ANCHOR_PROBE_FACTOR = 1e3;
131
+ /** Decades within which a log-ratio counts as unchanged by the probe. @internal */
132
+ const ANCHOR_INVARIANCE_TOL = 1e-9;
124
133
  /**
125
134
  * One name's hyphen-token set is a STRICT subset of the other's
126
135
  * (`mass` ⊂ `reference-mass`, `mass` ⊂ `planck-mass`) — i.e. identifying a
@@ -157,6 +166,7 @@ function buildDiscoveryContext(edges, opts) {
157
166
  // Candidate-invariant: the anchor's forward evaluation, the base component
158
167
  // partition, and the base forward closure all depend only on (edges, opts).
159
168
  anchorValues: forwardEvaluate(edges, groundTruth, baseIdents),
169
+ anchorValuesProbe: forwardEvaluate(edges, Object.fromEntries(Object.entries(groundTruth).map(([k, v]) => [k, v * ANCHOR_PROBE_FACTOR])), baseIdents),
160
170
  comps: quantityComponents(edges, baseIdents),
161
171
  closureBase: forwardClosure(edges, anchor, baseIdents),
162
172
  };
@@ -179,7 +189,7 @@ export function vetLinkCandidate(edges, candidate, opts = {}) {
179
189
  * @internal
180
190
  */
181
191
  function vetInContext(edges, candidate, ctx) {
182
- const { baseIdents, groundTruth, anchor, repVals, maxOrders, anchorValues, comps, closureBase, attributesByName, } = ctx;
192
+ const { baseIdents, groundTruth, anchor, repVals, maxOrders, anchorValues, anchorValuesProbe, comps, closureBase, attributesByName, } = ctx;
183
193
  // Magnitude gate: an INDEPENDENT falsifier the single-anchor graph can't make.
184
194
  // Only fires when both endpoints have a representative value; abstains (and
185
195
  // never false-rejects) otherwise. A value comes from the sourced static table
@@ -206,6 +216,21 @@ function vetInContext(edges, candidate, ctx) {
206
216
  ? Math.abs(Math.log10(Math.abs(va.value)) - Math.log10(Math.abs(vb.value)))
207
217
  : null;
208
218
  const magnitudeClash = ordersApart !== null && ordersApart > maxOrders;
219
+ // Anchor-invariance probe: re-read each anchor-derived magnitude at the
220
+ // rescaled anchor. A table value is a constant and does not move.
221
+ const probeOf = (name, m) => (m.fromAnchor ? anchorValuesProbe.get(name) : m.value);
222
+ let magnitudeAnchorInvariant = false;
223
+ if (magnitudeUsedAnchor) {
224
+ const pa = probeOf(candidate.a, va);
225
+ const pb = probeOf(candidate.b, vb);
226
+ if (pa !== undefined && pb !== undefined && pa !== 0 && pb !== 0 && Number.isFinite(pa) && Number.isFinite(pb)) {
227
+ const la = Math.log10(Math.abs(va.value));
228
+ const lb = Math.log10(Math.abs(vb.value));
229
+ const lpa = Math.log10(Math.abs(pa));
230
+ const lpb = Math.log10(Math.abs(pb));
231
+ magnitudeAnchorInvariant = Math.abs((lpa - lpb) - (la - lb)) <= ANCHOR_INVARIANCE_TOL;
232
+ }
233
+ }
209
234
  // A generic↔specialization identification (mass ≟ reference-mass) is
210
235
  // near-tautological — barred from `promising` regardless of structure.
211
236
  const subsuming = nameSubsumes(candidate.a, candidate.b);
@@ -261,8 +286,8 @@ function vetInContext(edges, candidate, ctx) {
261
286
  .sort();
262
287
  // Verdict precedence: a magnitude clash is the most decisive, most
263
288
  // interpretable falsification, checked before the graph contradiction;
264
- // the qualitative identity falsifier (axis-clash) is weaker than both
265
- // numeric falsifiers but still outranks promising/inert (D1).
289
+ // the regime-label prior (axis-clash) is weaker than both numeric
290
+ // falsifiers and is not one itself, but still outranks promising/inert (D1).
266
291
  let verdict;
267
292
  if (magnitudeClash)
268
293
  verdict = 'magnitude-clash';
@@ -306,6 +331,7 @@ function vetInContext(edges, candidate, ctx) {
306
331
  ordersApart,
307
332
  magnitudeChecked,
308
333
  magnitudeUsedAnchor,
334
+ magnitudeAnchorInvariant,
309
335
  subsuming,
310
336
  verdict,
311
337
  score,
@@ -1 +1 @@
1
- {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/composition/discovery.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../../src/composition/discovery.ts"],"names":[],"mappings":"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"}