universal-physics-tensor 0.22.0 → 0.24.0
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.
- package/README.md +30 -15
- package/bin/upt.mjs +127 -21
- package/dist/bridges/equations/_be-helpers.d.ts +1 -66
- package/dist/bridges/equations/_be-helpers.d.ts.map +1 -1
- package/dist/bridges/equations/_be-helpers.js +7 -83
- package/dist/bridges/equations/_be-helpers.js.map +1 -1
- package/dist/canonical/entries/l1-gravity-thermo.d.ts.map +1 -1
- package/dist/canonical/entries/l1-gravity-thermo.js +42 -5
- package/dist/canonical/entries/l1-gravity-thermo.js.map +1 -1
- package/dist/canonical/entries/l1-quantum-em.js +1 -1
- package/dist/canonical/entries/l1-quantum-em.js.map +1 -1
- package/dist/canonical/entries/relativity.d.ts.map +1 -1
- package/dist/canonical/entries/relativity.js +76 -2
- package/dist/canonical/entries/relativity.js.map +1 -1
- package/dist/canonical/normal-form.d.ts +10 -4
- package/dist/canonical/normal-form.d.ts.map +1 -1
- package/dist/canonical/normal-form.js +32 -2
- package/dist/canonical/normal-form.js.map +1 -1
- package/dist/canonical/registry.d.ts +7 -0
- package/dist/canonical/registry.d.ts.map +1 -1
- package/dist/canonical/registry.js +9 -0
- package/dist/canonical/registry.js.map +1 -1
- package/dist/composition/canonical-graph.d.ts +77 -0
- package/dist/composition/canonical-graph.d.ts.map +1 -0
- package/dist/composition/canonical-graph.js +155 -0
- package/dist/composition/canonical-graph.js.map +1 -0
- package/dist/composition/compose.d.ts.map +1 -1
- package/dist/composition/compose.js +14 -0
- package/dist/composition/compose.js.map +1 -1
- package/dist/composition/discovery.d.ts +10 -0
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +50 -7
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/edges/calibration.d.ts.map +1 -1
- package/dist/composition/edges/calibration.js +53 -0
- package/dist/composition/edges/calibration.js.map +1 -1
- package/dist/composition/edges/catalog-full.d.ts.map +1 -1
- package/dist/composition/edges/catalog-full.js +33 -1
- package/dist/composition/edges/catalog-full.js.map +1 -1
- package/dist/composition/index.d.ts +1 -0
- package/dist/composition/index.d.ts.map +1 -1
- package/dist/composition/index.js +1 -0
- package/dist/composition/index.js.map +1 -1
- package/dist/composition/proposed-bridges.d.ts +218 -0
- package/dist/composition/proposed-bridges.d.ts.map +1 -0
- package/dist/composition/proposed-bridges.js +499 -0
- package/dist/composition/proposed-bridges.js.map +1 -0
- package/dist/composition/representative-values.d.ts +9 -3
- package/dist/composition/representative-values.d.ts.map +1 -1
- package/dist/composition/representative-values.js +34 -3
- package/dist/composition/representative-values.js.map +1 -1
- package/dist/composition/retrodiction.d.ts +13 -0
- package/dist/composition/retrodiction.d.ts.map +1 -1
- package/dist/composition/retrodiction.js +7 -1
- package/dist/composition/retrodiction.js.map +1 -1
- package/dist/composition/symbolic-constants.d.ts.map +1 -1
- package/dist/composition/symbolic-constants.js +1 -0
- package/dist/composition/symbolic-constants.js.map +1 -1
- package/dist/core/cell.d.ts +1 -23
- package/dist/core/cell.d.ts.map +1 -1
- package/dist/core/cell.js +0 -31
- package/dist/core/cell.js.map +1 -1
- package/dist/core/tensor.d.ts +27 -1
- package/dist/core/tensor.d.ts.map +1 -1
- package/dist/core/tensor.js +35 -0
- package/dist/core/tensor.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/dist/numerical/grid-field.d.ts +7 -17
- package/dist/numerical/grid-field.d.ts.map +1 -1
- package/dist/numerical/input-validation.d.ts +56 -0
- package/dist/numerical/input-validation.d.ts.map +1 -0
- package/dist/numerical/input-validation.js +75 -0
- package/dist/numerical/input-validation.js.map +1 -0
- package/dist/numerical/klein-gordon.js +1 -1
- package/dist/numerical/klein-gordon.js.map +1 -1
- package/dist/numerical/types.d.ts +18 -1
- package/dist/numerical/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,499 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Identity-consequence surfacer — turns a `promising` discovery identification
|
|
3
|
+
* into the ONE algebraic relation it implies, as an UNADJUDICATED proposal.
|
|
4
|
+
*
|
|
5
|
+
* When the discovery funnel flags `a ≟ b` (two canonical quantities of equal
|
|
6
|
+
* dimension), and `a`, `b` are the TARGETS of two canonical equations `Eₐ`, `E_b`,
|
|
7
|
+
* the hypothesised identity `a ≡ b` makes their right-hand sides equal:
|
|
8
|
+
*
|
|
9
|
+
* Eₐ.scalarAst = E_b.scalarAst
|
|
10
|
+
*
|
|
11
|
+
* Eliminating (isolating) one free variable yields a relation among the union of
|
|
12
|
+
* the two governing sets — e.g. Landauer `k_B T ln2` ≟ Planck–Einstein `h ν`
|
|
13
|
+
* gives `ν = (k_B ln2 / h) · T`, the "Landauer photon".
|
|
14
|
+
*
|
|
15
|
+
* CRITICAL — this is NOT new physics and NOT a bridge. It is the algebraic
|
|
16
|
+
* consequence of an UNADJUDICATED identification, surfaced for a physicist to
|
|
17
|
+
* judge (Part-VI §XXVII-B: the enumerator proposes, humans dispose). Every
|
|
18
|
+
* emitted record carries `status: 'unadjudicated'` — a literal that is NOT a
|
|
19
|
+
* member of `BridgeEquationStatus`, so a proposal can never be assigned where a
|
|
20
|
+
* catalog entry is expected. The generator NEVER writes `BRIDGE_EQUATIONS` and a
|
|
21
|
+
* proposal is NEVER added to `CANONICAL_GRAPH` (no coincidence-amplifying loop).
|
|
22
|
+
*
|
|
23
|
+
* Scope (v0.24.0 pilot): canonical-only `promising` candidates whose BOTH source
|
|
24
|
+
* equations (a) have a non-null `dimensional.monomial` (determinate) and (b) are
|
|
25
|
+
* `epistemicStatus: 'fully-quantitative'` (so the eliminated prefactor is a
|
|
26
|
+
* closed numeric constant, not an operator-valued stub — this gates out
|
|
27
|
+
* `CE-jarzynski`). See `docs/planning/v0.24.0-{Design,Review-Findings}.md`.
|
|
28
|
+
*
|
|
29
|
+
* INTERNAL tooling — deliberately NOT re-exported from `src/index.ts`.
|
|
30
|
+
*
|
|
31
|
+
* @module composition/proposed-bridges
|
|
32
|
+
*/
|
|
33
|
+
import { validate } from '../dimensional/validator.js';
|
|
34
|
+
import { DIMENSIONLESS } from '../dimensional/types.js';
|
|
35
|
+
import { equals, format } from '../dimensional/algebra.js';
|
|
36
|
+
import { canonicalByTarget, canonicalById } from '../canonical/registry.js';
|
|
37
|
+
import { BRIDGE_EQUATIONS } from '../bridges/index.js';
|
|
38
|
+
import { normalForm } from '../canonical/normal-form.js';
|
|
39
|
+
import { CONSTANTS } from './symbolic-constants.js';
|
|
40
|
+
import { evalExpr } from './expr-eval.js';
|
|
41
|
+
import { rankDiscoveries } from './discovery.js';
|
|
42
|
+
import { CANONICAL_GRAPH } from './canonical-graph.js';
|
|
43
|
+
import { CATALOG_GRAPH } from './catalog-graph.js';
|
|
44
|
+
/** Thrown when an AST is not a product / quotient / integer-power of symbols. */
|
|
45
|
+
export class NotAMonomialError extends Error {
|
|
46
|
+
constructor(message) {
|
|
47
|
+
super(message);
|
|
48
|
+
this.name = 'NotAMonomialError';
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function mergeInto(into, from, scale) {
|
|
52
|
+
for (const [name, { dim, exp }] of from) {
|
|
53
|
+
const cur = into.get(name);
|
|
54
|
+
if (cur === undefined) {
|
|
55
|
+
into.set(name, { dim, exp: exp * scale });
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
if (!equals(cur.dim, dim)) {
|
|
59
|
+
throw new NotAMonomialError(`leaf '${name}' appears with inconsistent dimensions`);
|
|
60
|
+
}
|
|
61
|
+
cur.exp += exp * scale;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Decompose a flat-monomial `ExprNode` into a leaf→exponent map. Throws
|
|
67
|
+
* `NotAMonomialError` on sums, differences, or non-symbol bases — this is the
|
|
68
|
+
* AST-level monomial gate.
|
|
69
|
+
*/
|
|
70
|
+
export function toMonomial(ast) {
|
|
71
|
+
const out = new Map();
|
|
72
|
+
switch (ast.kind) {
|
|
73
|
+
case 'symbol':
|
|
74
|
+
out.set(ast.name, { dim: ast.dim, exp: 1 });
|
|
75
|
+
return out;
|
|
76
|
+
case 'op':
|
|
77
|
+
switch (ast.op) {
|
|
78
|
+
case '*':
|
|
79
|
+
for (const a of ast.args)
|
|
80
|
+
mergeInto(out, toMonomial(a), 1);
|
|
81
|
+
return out;
|
|
82
|
+
case '/': {
|
|
83
|
+
const [num, ...dens] = ast.args;
|
|
84
|
+
mergeInto(out, toMonomial(num), 1);
|
|
85
|
+
for (const d of dens)
|
|
86
|
+
mergeInto(out, toMonomial(d), -1);
|
|
87
|
+
return out;
|
|
88
|
+
}
|
|
89
|
+
case '^': {
|
|
90
|
+
const [base, expNode] = ast.args;
|
|
91
|
+
if (expNode.kind !== 'symbol') {
|
|
92
|
+
throw new NotAMonomialError('non-literal exponent');
|
|
93
|
+
}
|
|
94
|
+
const n = Number(expNode.name);
|
|
95
|
+
if (!Number.isFinite(n)) {
|
|
96
|
+
throw new NotAMonomialError(`non-numeric exponent '${expNode.name}'`);
|
|
97
|
+
}
|
|
98
|
+
mergeInto(out, toMonomial(base), n);
|
|
99
|
+
return out;
|
|
100
|
+
}
|
|
101
|
+
default:
|
|
102
|
+
throw new NotAMonomialError(`operator '${ast.op}' is not monomial`);
|
|
103
|
+
}
|
|
104
|
+
default:
|
|
105
|
+
throw new NotAMonomialError(`node kind '${ast.kind}' is not monomial`);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function sym(name, dim) {
|
|
109
|
+
return { kind: 'symbol', name, dim };
|
|
110
|
+
}
|
|
111
|
+
/** Rebuild a flat-monomial `ExprNode` from a leaf→exponent map (numerator =
|
|
112
|
+
* positive exponents, denominator = negative). Zero exponents drop out. */
|
|
113
|
+
export function fromMonomial(m) {
|
|
114
|
+
const factor = (name, dim, e) => e === 1
|
|
115
|
+
? sym(name, dim)
|
|
116
|
+
: { kind: 'op', op: '^', args: [sym(name, dim), sym(String(e), DIMENSIONLESS)] };
|
|
117
|
+
const num = [];
|
|
118
|
+
const den = [];
|
|
119
|
+
for (const [name, { dim, exp }] of [...m].sort((a, b) => a[0].localeCompare(b[0]))) {
|
|
120
|
+
if (exp === 0)
|
|
121
|
+
continue;
|
|
122
|
+
if (exp > 0)
|
|
123
|
+
num.push(factor(name, dim, exp));
|
|
124
|
+
else
|
|
125
|
+
den.push(factor(name, dim, -exp));
|
|
126
|
+
}
|
|
127
|
+
const product = (xs) => xs.length === 1 ? xs[0] : { kind: 'op', op: '*', args: xs };
|
|
128
|
+
const numerator = num.length === 0 ? sym('1', DIMENSIONLESS) : product(num);
|
|
129
|
+
if (den.length === 0)
|
|
130
|
+
return numerator;
|
|
131
|
+
return { kind: 'op', op: '/', args: [numerator, product(den)] };
|
|
132
|
+
}
|
|
133
|
+
const isConstant = (name) => Object.prototype.hasOwnProperty.call(CONSTANTS, name);
|
|
134
|
+
/** The single non-constant leaf of a monomial, or null if 0 or >1. */
|
|
135
|
+
function uniqueNonConstantLeaf(m) {
|
|
136
|
+
const free = [...m].filter(([name]) => !isConstant(name));
|
|
137
|
+
if (free.length !== 1)
|
|
138
|
+
return null;
|
|
139
|
+
const [name, { dim, exp }] = free[0];
|
|
140
|
+
return { name, dim, exp };
|
|
141
|
+
}
|
|
142
|
+
function latexFromMono(m) {
|
|
143
|
+
const num = [];
|
|
144
|
+
const den = [];
|
|
145
|
+
for (const [name, { exp }] of [...m].sort((a, b) => a[0].localeCompare(b[0]))) {
|
|
146
|
+
if (exp === 0)
|
|
147
|
+
continue;
|
|
148
|
+
const tok = Math.abs(exp) === 1 ? name : `${name}^{${Math.abs(exp)}}`;
|
|
149
|
+
(exp > 0 ? num : den).push(tok);
|
|
150
|
+
}
|
|
151
|
+
const n = num.join(' \\cdot ') || '1';
|
|
152
|
+
return den.length ? `\\frac{${n}}{${den.join(' \\cdot ')}}` : n;
|
|
153
|
+
}
|
|
154
|
+
// ── leaf-name canonicalization ──────────────────────────────────────────────
|
|
155
|
+
// A canonical equation's `scalarAst` uses private symbols (`T`) while its
|
|
156
|
+
// `dimensional.governing` and the whole composition graph (and bridge `symbolic`
|
|
157
|
+
// forms) use quantity names (`temperature`). Aligning the AST leaves to the
|
|
158
|
+
// governing names lets a derivation from a canonical equation and one from a
|
|
159
|
+
// bridge edge of the SAME physics collapse under `dedupByNormalForm`.
|
|
160
|
+
function collectLeafDims(ast, into) {
|
|
161
|
+
if (ast.kind === 'symbol') {
|
|
162
|
+
if (!into.has(ast.name))
|
|
163
|
+
into.set(ast.name, ast.dim);
|
|
164
|
+
}
|
|
165
|
+
else if (ast.kind === 'op') {
|
|
166
|
+
for (const a of ast.args)
|
|
167
|
+
collectLeafDims(a, into);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/** Map each non-constant `scalarAst` leaf to the governing quantity of equal
|
|
171
|
+
* dimension, when that match is unique (else leave it — never guess). */
|
|
172
|
+
function leafCanonMap(scalarAst, governing) {
|
|
173
|
+
const leaves = new Map();
|
|
174
|
+
collectLeafDims(scalarAst, leaves);
|
|
175
|
+
const govFree = governing.filter((g) => !isConstant(g.name));
|
|
176
|
+
const map = new Map();
|
|
177
|
+
for (const [leaf, dim] of leaves) {
|
|
178
|
+
if (isConstant(leaf) || Number.isFinite(Number(leaf)))
|
|
179
|
+
continue;
|
|
180
|
+
if (govFree.some((g) => g.name === leaf))
|
|
181
|
+
continue; // already a graph name
|
|
182
|
+
const matches = govFree.filter((g) => equals(g.dim, dim));
|
|
183
|
+
if (matches.length === 1)
|
|
184
|
+
map.set(leaf, matches[0].name);
|
|
185
|
+
}
|
|
186
|
+
return map;
|
|
187
|
+
}
|
|
188
|
+
function renameLeaves(ast, map) {
|
|
189
|
+
if (map.size === 0)
|
|
190
|
+
return ast;
|
|
191
|
+
if (ast.kind === 'symbol') {
|
|
192
|
+
const r = map.get(ast.name);
|
|
193
|
+
return r ? { ...ast, name: r } : ast;
|
|
194
|
+
}
|
|
195
|
+
if (ast.kind === 'op') {
|
|
196
|
+
return { ...ast, args: ast.args.map((a) => renameLeaves(a, map)) };
|
|
197
|
+
}
|
|
198
|
+
return ast;
|
|
199
|
+
}
|
|
200
|
+
/** True if the monomial carries a dimensionless leaf that is neither a known
|
|
201
|
+
* constant, a numeric literal, NOR a declared input quantity — i.e. an
|
|
202
|
+
* operator-valued STUB (e.g. Jarzynski's `ln_avg_exp_minus_betaW`), not a clean
|
|
203
|
+
* dimensionless INPUT like a coupling constant (BE-18's `yukawa-coupling`). */
|
|
204
|
+
function hasNonConstantStub(m, inputs) {
|
|
205
|
+
for (const [name, { dim }] of m) {
|
|
206
|
+
if (equals(dim, DIMENSIONLESS) &&
|
|
207
|
+
!isConstant(name) &&
|
|
208
|
+
!Number.isFinite(Number(name)) &&
|
|
209
|
+
!inputs.has(name)) {
|
|
210
|
+
return true;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return false;
|
|
214
|
+
}
|
|
215
|
+
/** ALL admissible sources for `name` — every canonical equation AND every bridge
|
|
216
|
+
* edge whose target is `name` and whose form is a clean monomial. A target with
|
|
217
|
+
* several sources (e.g. BE-42 Hawking's two parametrisations) is DE-AMBIGUATED by
|
|
218
|
+
* enumeration, not skipped; coinciding derivations collapse later under dedup. */
|
|
219
|
+
export function resolveSources(name) {
|
|
220
|
+
const out = [];
|
|
221
|
+
// Canonical: a determinate monomial AND a fully-quantitative form.
|
|
222
|
+
for (const e of canonicalByTarget(name)) {
|
|
223
|
+
if (e.scalarAst &&
|
|
224
|
+
e.dimensional.monomial !== null &&
|
|
225
|
+
e.epistemicStatus === 'fully-quantitative') {
|
|
226
|
+
// Align the AST's private leaf symbols (`T`) with the governing quantity
|
|
227
|
+
// names (`temperature`) so canonical- and bridge-sourced derivations of the
|
|
228
|
+
// same relation collapse under dedup.
|
|
229
|
+
const scalarAst = renameLeaves(e.scalarAst, leafCanonMap(e.scalarAst, e.dimensional.governing));
|
|
230
|
+
out.push({
|
|
231
|
+
id: e.id,
|
|
232
|
+
kind: 'canonical',
|
|
233
|
+
scalarAst,
|
|
234
|
+
targetDim: e.dimensional.target.dim,
|
|
235
|
+
grade: e.epistemicStatus,
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
// Bridge: edges carrying a clean-monomial `symbolic` form. `confidence` is about
|
|
240
|
+
// FRAMING, not formula completeness, so it is recorded — not gated; the
|
|
241
|
+
// structural stub check enforces a closed prefactor instead.
|
|
242
|
+
for (const edge of CATALOG_GRAPH) {
|
|
243
|
+
if (edge.target.name !== name || !edge.symbolic)
|
|
244
|
+
continue;
|
|
245
|
+
let m;
|
|
246
|
+
try {
|
|
247
|
+
m = toMonomial(edge.symbolic);
|
|
248
|
+
}
|
|
249
|
+
catch (err) {
|
|
250
|
+
if (err instanceof NotAMonomialError)
|
|
251
|
+
continue;
|
|
252
|
+
throw err;
|
|
253
|
+
}
|
|
254
|
+
if (hasNonConstantStub(m, new Set(edge.sources.map((s) => s.name))))
|
|
255
|
+
continue;
|
|
256
|
+
const dim = validate(edge.symbolic).inferredDimension;
|
|
257
|
+
if (!dim || !equals(dim, edge.target.dim))
|
|
258
|
+
continue;
|
|
259
|
+
out.push({
|
|
260
|
+
id: edge.beId !== null ? `BE-${edge.beId}` : edge.id,
|
|
261
|
+
kind: 'bridge',
|
|
262
|
+
scalarAst: edge.symbolic,
|
|
263
|
+
targetDim: edge.target.dim,
|
|
264
|
+
grade: edge.confidence,
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
return out;
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* Derive the implied relation for each `promising` identification in `candidates`.
|
|
271
|
+
* Returns ONE proposal per admissible candidate (Adam M2), structurally
|
|
272
|
+
* de-duplicated (`dedupByNormalForm`).
|
|
273
|
+
*
|
|
274
|
+
* Candidate-set-agnostic: pass `rankDiscoveries(CANONICAL_GRAPH)` (default),
|
|
275
|
+
* `…(CATALOG_GRAPH)`, or `…([...CATALOG_GRAPH, ...CANONICAL_GRAPH])` to widen the
|
|
276
|
+
* source — the CLI `discover --derive` forwards whichever `--source=` graph is
|
|
277
|
+
* selected. Each endpoint is resolved by `resolveSource` to a canonical equation
|
|
278
|
+
* OR a bridge edge with a clean-monomial `symbolic` form, so a candidate yields a
|
|
279
|
+
* proposal when BOTH endpoints resolve (the Landauer photon, for instance, is
|
|
280
|
+
* derivable both from `CE-landauer` and — at `--source=both` — from the BE-16
|
|
281
|
+
* bridge). A target with SEVERAL admissible sources (BE-42 Hawking's two
|
|
282
|
+
* parametrisations, or a canonical + bridge pair) is de-ambiguated by ENUMERATION
|
|
283
|
+
* — every source pair is tried and coincidences collapse under dedup. HONEST
|
|
284
|
+
* BOUNDARY: an endpoint with no clean-monomial source (a bridge with no `symbolic`
|
|
285
|
+
* form or a non-monomial one) yields nothing.
|
|
286
|
+
*
|
|
287
|
+
* Pure; reads the registries, writes nothing.
|
|
288
|
+
*
|
|
289
|
+
* @internal
|
|
290
|
+
*/
|
|
291
|
+
export function deriveProposedBridges(candidates = rankDiscoveries(CANONICAL_GRAPH)) {
|
|
292
|
+
const out = [];
|
|
293
|
+
for (const cand of candidates) {
|
|
294
|
+
if (cand.verdict !== 'promising')
|
|
295
|
+
continue;
|
|
296
|
+
const [t0, t1] = [cand.a, cand.b].sort();
|
|
297
|
+
// Enumerate every admissible source pair (de-ambiguation by enumeration).
|
|
298
|
+
for (const E1 of resolveSources(t0)) {
|
|
299
|
+
for (const E2 of resolveSources(t1)) {
|
|
300
|
+
const p = derivePair(cand, t0, t1, E1, E2);
|
|
301
|
+
if (p)
|
|
302
|
+
out.push(p);
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
return disambiguateIds(dedupByNormalForm(out));
|
|
307
|
+
}
|
|
308
|
+
/** Derive one proposal from a fixed source pair, or null if inadmissible. */
|
|
309
|
+
function derivePair(cand, t0, t1, E1, E2) {
|
|
310
|
+
let m1;
|
|
311
|
+
let m2;
|
|
312
|
+
try {
|
|
313
|
+
m1 = toMonomial(E1.scalarAst);
|
|
314
|
+
m2 = toMonomial(E2.scalarAst);
|
|
315
|
+
}
|
|
316
|
+
catch (e) {
|
|
317
|
+
if (e instanceof NotAMonomialError)
|
|
318
|
+
return null;
|
|
319
|
+
throw e;
|
|
320
|
+
}
|
|
321
|
+
const solveFor = uniqueNonConstantLeaf(m2);
|
|
322
|
+
if (!solveFor)
|
|
323
|
+
return null; // no single observable to isolate
|
|
324
|
+
if (m1.has(solveFor.name))
|
|
325
|
+
return null; // degenerate overlap (Design §5.2)
|
|
326
|
+
// Isolate solveFor from `m1 = m2`: solveFor^e = m1 / (m2 without solveFor).
|
|
327
|
+
const result = new Map();
|
|
328
|
+
mergeInto(result, m1, 1);
|
|
329
|
+
const m2NoSolve = new Map(m2);
|
|
330
|
+
m2NoSolve.delete(solveFor.name);
|
|
331
|
+
mergeInto(result, m2NoSolve, -1);
|
|
332
|
+
if (solveFor.exp !== 1) {
|
|
333
|
+
for (const v of result.values())
|
|
334
|
+
v.exp /= solveFor.exp;
|
|
335
|
+
}
|
|
336
|
+
const scalarAst = fromMonomial(result);
|
|
337
|
+
const dim = validate(scalarAst).inferredDimension;
|
|
338
|
+
if (!dim || !equals(dim, solveFor.dim))
|
|
339
|
+
return null; // round-trip guard
|
|
340
|
+
const governing = [...result]
|
|
341
|
+
.filter(([name]) => !isConstant(name))
|
|
342
|
+
.map(([name, { dim: d }]) => ({ name, dim: d }));
|
|
343
|
+
const src = (e) => `${e.id} (${e.kind}, ${e.grade})`;
|
|
344
|
+
const provenance = `Monomial elimination of the UNADJUDICATED identification ${cand.a} ≡ ${cand.b} ` +
|
|
345
|
+
`(${src(E1)}.rhs = ${src(E2)}.rhs), solved for '${solveFor.name}'. ` +
|
|
346
|
+
`Algebraic consequence of a hypothesised identity — NOT a new physical ` +
|
|
347
|
+
`relation and NOT a bridge. Invertible (any free leaf may be isolated).`;
|
|
348
|
+
return {
|
|
349
|
+
id: `IC-${t0}--${t1}--${solveFor.name}`,
|
|
350
|
+
derivedFrom: {
|
|
351
|
+
identification: { a: cand.a, b: cand.b, dim: cand.dim },
|
|
352
|
+
sourceEquationIds: [E1.id, E2.id],
|
|
353
|
+
solvedFor: solveFor.name,
|
|
354
|
+
},
|
|
355
|
+
target: { name: solveFor.name, dim: solveFor.dim },
|
|
356
|
+
governing,
|
|
357
|
+
formulaLatex: `${solveFor.name} = ${latexFromMono(result)}`,
|
|
358
|
+
scalarAst,
|
|
359
|
+
dimensionalSignature: format(dim),
|
|
360
|
+
provenance,
|
|
361
|
+
alsoDerivableFrom: [],
|
|
362
|
+
status: 'unadjudicated',
|
|
363
|
+
evaluate: (values) => evalExpr(scalarAst, values),
|
|
364
|
+
};
|
|
365
|
+
}
|
|
366
|
+
/** Make ids unique: when distinct proposals (different source pairs) collide on
|
|
367
|
+
* the base `IC-<a>--<b>--<solveFor>` id, suffix each with its source pair. */
|
|
368
|
+
function disambiguateIds(proposals) {
|
|
369
|
+
const counts = new Map();
|
|
370
|
+
for (const p of proposals)
|
|
371
|
+
counts.set(p.id, (counts.get(p.id) ?? 0) + 1);
|
|
372
|
+
return proposals.map((p) => (counts.get(p.id) ?? 0) > 1
|
|
373
|
+
? { ...p, id: `${p.id}--${p.derivedFrom.sourceEquationIds.join('+')}` }
|
|
374
|
+
: p);
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Collapse proposals that derive the SAME relation — equal `normalForm` (up to
|
|
378
|
+
* dimensionless constants) AND equal target dimension — into the first, recording
|
|
379
|
+
* the others' identifications in `alsoDerivableFrom`. Distinct stubs do NOT
|
|
380
|
+
* collapse (e.g. Landauer's dropped `ln2` vs an operator stub hash differently),
|
|
381
|
+
* so this only merges genuine structural twins that a wider candidate scope can
|
|
382
|
+
* produce (Design §9 #2). Deterministic: input order is preserved.
|
|
383
|
+
*/
|
|
384
|
+
export function dedupByNormalForm(proposals) {
|
|
385
|
+
const byKey = new Map();
|
|
386
|
+
const order = [];
|
|
387
|
+
const extras = new Map();
|
|
388
|
+
for (const p of proposals) {
|
|
389
|
+
const key = `${normalForm(p.scalarAst)}::${p.dimensionalSignature}`;
|
|
390
|
+
const kept = byKey.get(key);
|
|
391
|
+
if (kept === undefined) {
|
|
392
|
+
byKey.set(key, p);
|
|
393
|
+
order.push(key);
|
|
394
|
+
extras.set(key, [...p.alsoDerivableFrom]);
|
|
395
|
+
}
|
|
396
|
+
else {
|
|
397
|
+
const tag = `${p.derivedFrom.identification.a} ≡ ${p.derivedFrom.identification.b}`;
|
|
398
|
+
extras.get(key).push(tag, ...p.alsoDerivableFrom);
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
return order.map((key) => {
|
|
402
|
+
const p = byKey.get(key);
|
|
403
|
+
const merged = [...new Set(extras.get(key))].sort();
|
|
404
|
+
return merged.length === p.alsoDerivableFrom.length
|
|
405
|
+
? p
|
|
406
|
+
: { ...p, alsoDerivableFrom: merged };
|
|
407
|
+
});
|
|
408
|
+
}
|
|
409
|
+
export class MissingEvidenceError extends Error {
|
|
410
|
+
constructor(message) {
|
|
411
|
+
super(message);
|
|
412
|
+
this.name = 'MissingEvidenceError';
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
/**
|
|
416
|
+
* Gate a proposal toward the catalog. THROWS `MissingEvidenceError` unless every
|
|
417
|
+
* human input is present and non-blank (operationalises "null, not guessed").
|
|
418
|
+
* Returns a `PromotionRequest`; it deliberately does NOT synthesise a
|
|
419
|
+
* `BridgeEquationEntry` — the physics-judgment fields are human work.
|
|
420
|
+
*
|
|
421
|
+
* @internal
|
|
422
|
+
*/
|
|
423
|
+
export function promoteProposal(proposal, evidence) {
|
|
424
|
+
const blank = (s) => typeof s !== 'string' || s.trim() === '';
|
|
425
|
+
if (blank(evidence.citation))
|
|
426
|
+
throw new MissingEvidenceError('citation required');
|
|
427
|
+
if (blank(evidence.reviewRef))
|
|
428
|
+
throw new MissingEvidenceError('reviewRef required');
|
|
429
|
+
if (!evidence.status)
|
|
430
|
+
throw new MissingEvidenceError('status required (not defaulted)');
|
|
431
|
+
return { proposal, evidence };
|
|
432
|
+
}
|
|
433
|
+
/** Domain label + citations for a source id — canonical (`CE-…`) or bridge
|
|
434
|
+
* (`BE-<n>`), so the entry surface works for either source kind. */
|
|
435
|
+
function equationMeta(id) {
|
|
436
|
+
const ce = canonicalById(id);
|
|
437
|
+
if (ce)
|
|
438
|
+
return { domain: ce.domain, references: ce.references };
|
|
439
|
+
const n = id.startsWith('BE-') ? Number(id.slice(3)) : NaN;
|
|
440
|
+
const be = BRIDGE_EQUATIONS.find((e) => e.id === n);
|
|
441
|
+
if (be)
|
|
442
|
+
return { domain: `${be.bridges[0]}↔${be.bridges[1]} (${be.status})`, references: be.references };
|
|
443
|
+
return { domain: 'unknown', references: [] };
|
|
444
|
+
}
|
|
445
|
+
/** Render a `ProposedBridge` into the catalog field-shape, filled honestly. */
|
|
446
|
+
export function toProposedEntry(p) {
|
|
447
|
+
const [id1, id2] = p.derivedFrom.sourceEquationIds;
|
|
448
|
+
const M1 = equationMeta(id1);
|
|
449
|
+
const M2 = equationMeta(id2);
|
|
450
|
+
const { a, b } = p.derivedFrom.identification;
|
|
451
|
+
const srcRefs = [
|
|
452
|
+
[id1, M1],
|
|
453
|
+
[id2, M2],
|
|
454
|
+
].flatMap(([id, m]) => m.references.map((r) => `source ${id}: ${r}`));
|
|
455
|
+
return {
|
|
456
|
+
id: p.id,
|
|
457
|
+
name: `${a} ≡ ${b} ⇒ ${p.derivedFrom.solvedFor} (derived)`,
|
|
458
|
+
category: 'Z',
|
|
459
|
+
category_name: 'Machine-Derived Identity Consequences (UNADJUDICATED)',
|
|
460
|
+
bridges: [M1.domain, M2.domain],
|
|
461
|
+
status: 'unadjudicated',
|
|
462
|
+
context: `Algebraic consequence of the UNADJUDICATED identification ${a} ≡ ${b} ` +
|
|
463
|
+
`(${id1}.rhs = ${id2}.rhs), solved for ${p.derivedFrom.solvedFor}. A ` +
|
|
464
|
+
`dimensional coincidence surfaced by the discovery funnel — no physical ` +
|
|
465
|
+
`mechanism is asserted, and it is NOT a bridge.`,
|
|
466
|
+
formula_latex: p.formulaLatex,
|
|
467
|
+
dimensional_signature: p.dimensionalSignature,
|
|
468
|
+
references: [
|
|
469
|
+
'Machine-derived; the combined relation has no independent literature.',
|
|
470
|
+
...srcRefs,
|
|
471
|
+
],
|
|
472
|
+
known_issues: [
|
|
473
|
+
{
|
|
474
|
+
severity: 'phenomenological-ansatz',
|
|
475
|
+
description: 'Machine-derived dimensional coincidence: the algebraic consequence ' +
|
|
476
|
+
'of an unadjudicated identification, with no mechanism and no ' +
|
|
477
|
+
'independent literature. Promotion to BRIDGE_EQUATIONS requires an ' +
|
|
478
|
+
'adversarial + literature review (Part-VI §XXVII-B) via promoteProposal().',
|
|
479
|
+
fixable: 'unknown',
|
|
480
|
+
},
|
|
481
|
+
],
|
|
482
|
+
derivedFrom: p.derivedFrom,
|
|
483
|
+
notes: p.provenance +
|
|
484
|
+
(p.alsoDerivableFrom.length
|
|
485
|
+
? ` Also derivable from: ${p.alsoDerivableFrom.join('; ')}.`
|
|
486
|
+
: ''),
|
|
487
|
+
};
|
|
488
|
+
}
|
|
489
|
+
/**
|
|
490
|
+
* The PROPOSED-BRIDGE review surface: derived identity-consequences in the
|
|
491
|
+
* catalog's field shape, in their OWN registry, every entry `status:
|
|
492
|
+
* 'unadjudicated'`. Separate from `BRIDGE_EQUATIONS` (the faithful 44-bridge spec
|
|
493
|
+
* encoding), which this never mutates. Default scope: canonical-only — widen with
|
|
494
|
+
* `deriveProposedBridges(rankDiscoveries(graph)).map(toProposedEntry)`.
|
|
495
|
+
*
|
|
496
|
+
* @internal
|
|
497
|
+
*/
|
|
498
|
+
export const PROPOSED_BRIDGES = deriveProposedBridges().map(toProposedEntry);
|
|
499
|
+
//# sourceMappingURL=proposed-bridges.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposed-bridges.js","sourceRoot":"","sources":["../../src/composition/proposed-bridges.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,9 +9,15 @@
|
|
|
9
9
|
* structurally CANNOT supply the magnitudes that would falsify these.
|
|
10
10
|
*
|
|
11
11
|
* This table injects that missing ground truth: a sourced, order-of-magnitude
|
|
12
|
-
* value for quantities that have a WELL-DEFINED physical scale.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* value for quantities that have a WELL-DEFINED physical scale. Two classes are
|
|
13
|
+
* deliberately ABSENT:
|
|
14
|
+
* - generic quantities (`mass`, `energy`, `length`, …) — no single scale (the
|
|
15
|
+
* discovery gate now reads these from the graph at the anchor instead, see
|
|
16
|
+
* `discovery.ts`); and
|
|
17
|
+
* - speculative-physics quantities with no agreed scale (`dark-fermion-mass`,
|
|
18
|
+
* `scalar-field-value`, `inflation-hubble-energy`, `boundary-length`, the
|
|
19
|
+
* time-dependent `coarsening-length`) — a value would be fabrication, so the
|
|
20
|
+
* gate correctly abstains on them.
|
|
15
21
|
* When a value is absent the gate abstains; it never false-rejects on unknowns.
|
|
16
22
|
*
|
|
17
23
|
* Values are order-of-magnitude estimates (good to ~1 order), each carrying its
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"representative-values.d.ts","sourceRoot":"","sources":["../../src/composition/representative-values.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"representative-values.d.ts","sourceRoot":"","sources":["../../src/composition/representative-values.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,qEAAqE;AACrE,MAAM,WAAW,mBAAmB;IAClC,6EAA6E;IAC7E,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAC1C,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CA0DpC,CAAC;AAEF;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,MAAM,GACX,mBAAmB,GAAG,SAAS,CAEjC"}
|
|
@@ -9,9 +9,15 @@
|
|
|
9
9
|
* structurally CANNOT supply the magnitudes that would falsify these.
|
|
10
10
|
*
|
|
11
11
|
* This table injects that missing ground truth: a sourced, order-of-magnitude
|
|
12
|
-
* value for quantities that have a WELL-DEFINED physical scale.
|
|
13
|
-
*
|
|
14
|
-
*
|
|
12
|
+
* value for quantities that have a WELL-DEFINED physical scale. Two classes are
|
|
13
|
+
* deliberately ABSENT:
|
|
14
|
+
* - generic quantities (`mass`, `energy`, `length`, …) — no single scale (the
|
|
15
|
+
* discovery gate now reads these from the graph at the anchor instead, see
|
|
16
|
+
* `discovery.ts`); and
|
|
17
|
+
* - speculative-physics quantities with no agreed scale (`dark-fermion-mass`,
|
|
18
|
+
* `scalar-field-value`, `inflation-hubble-energy`, `boundary-length`, the
|
|
19
|
+
* time-dependent `coarsening-length`) — a value would be fabrication, so the
|
|
20
|
+
* gate correctly abstains on them.
|
|
15
21
|
* When a value is absent the gate abstains; it never false-rejects on unknowns.
|
|
16
22
|
*
|
|
17
23
|
* Values are order-of-magnitude estimates (good to ~1 order), each carrying its
|
|
@@ -46,14 +52,39 @@ export const REPRESENTATIVE_VALUES = {
|
|
|
46
52
|
value: 3.94e-8,
|
|
47
53
|
source: 'Higgs VEV v ≈ 246 GeV',
|
|
48
54
|
},
|
|
55
|
+
'barrier-height': {
|
|
56
|
+
value: 3.2e-20,
|
|
57
|
+
source: 'BE-26 Löwdin DNA proton-transfer barrier V−E ~0.2 eV',
|
|
58
|
+
},
|
|
49
59
|
// ── masses [kg] ─────────────────────────────────────────────────────────
|
|
50
60
|
'planck-mass': { value: 2.176e-8, source: 'm_P = √(ℏc/G)' },
|
|
61
|
+
'tunneling-mass': {
|
|
62
|
+
value: 1.673e-27,
|
|
63
|
+
source: 'BE-26 tunneling particle is the proton, m_p = 1.673e-27 kg',
|
|
64
|
+
},
|
|
51
65
|
// ── lengths [m] ─────────────────────────────────────────────────────────
|
|
52
66
|
'foerster-radius': {
|
|
53
67
|
value: 5e-9,
|
|
54
68
|
source: 'typical FRET Förster radius ~5 nm',
|
|
55
69
|
},
|
|
70
|
+
'donor-acceptor-distance': {
|
|
71
|
+
value: 5e-9,
|
|
72
|
+
source: 'BE-24 FRET donor–acceptor separation ~5 nm (same regime as R_0)',
|
|
73
|
+
},
|
|
74
|
+
'barrier-width': {
|
|
75
|
+
value: 1e-10,
|
|
76
|
+
source: 'BE-26 DNA H-bond proton-tunneling distance ~1 Å (Löwdin 1963)',
|
|
77
|
+
},
|
|
56
78
|
'planck-length': { value: 1.616e-35, source: 'ℓ_P = √(ℏG/c³)' },
|
|
79
|
+
// Canonical-graph atomic length scales — sourced so the gate compares real
|
|
80
|
+
// magnitudes instead of falling back to the {mass: M_sun} anchor, which makes
|
|
81
|
+
// a 1/mass quantity like the Compton wavelength absurdly small (~10⁻⁷³ m) and
|
|
82
|
+
// produces a spurious clash against the (fixed) Bohr radius.
|
|
83
|
+
'compton-wavelength': {
|
|
84
|
+
value: 2.426e-12,
|
|
85
|
+
source: 'electron Compton wavelength λ_C = h/(m_e c) = 2.43e-12 m (CODATA)',
|
|
86
|
+
},
|
|
87
|
+
'bohr-radius': { value: 5.292e-11, source: 'Bohr radius a_0 = 5.29e-11 m (CODATA)' },
|
|
57
88
|
// ── times [s] ───────────────────────────────────────────────────────────
|
|
58
89
|
'planck-time': { value: 5.39e-44, source: 't_P = √(ℏG/c⁵)' },
|
|
59
90
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"representative-values.js","sourceRoot":"","sources":["../../src/composition/representative-values.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"representative-values.js","sourceRoot":"","sources":["../../src/composition/representative-values.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAUH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAE9B;IACF,2EAA2E;IAC3E,aAAa,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,gCAAgC,EAAE;IAC3E,uBAAuB,EAAE;QACvB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,gEAAgE;KACzE;IACD,mBAAmB,EAAE;QACnB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,0CAA0C;KACnD;IAED,2EAA2E;IAC3E,yBAAyB,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAE;IAC5E,oBAAoB,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,EAAE;IACzE,0BAA0B,EAAE;QAC1B,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,uBAAuB;KAChC;IACD,gBAAgB,EAAE;QAChB,KAAK,EAAE,OAAO;QACd,MAAM,EAAE,sDAAsD;KAC/D;IAED,2EAA2E;IAC3E,aAAa,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE;IAC3D,gBAAgB,EAAE;QAChB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,4DAA4D;KACrE;IAED,2EAA2E;IAC3E,iBAAiB,EAAE;QACjB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,mCAAmC;KAC5C;IACD,yBAAyB,EAAE;QACzB,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,iEAAiE;KAC1E;IACD,eAAe,EAAE;QACf,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,+DAA+D;KACxE;IACD,eAAe,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE;IAC/D,2EAA2E;IAC3E,8EAA8E;IAC9E,8EAA8E;IAC9E,6DAA6D;IAC7D,oBAAoB,EAAE;QACpB,KAAK,EAAE,SAAS;QAChB,MAAM,EAAE,mEAAmE;KAC5E;IACD,aAAa,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,uCAAuC,EAAE;IAEpF,2EAA2E;IAC3E,aAAa,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE;CAC7D,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAAY;IAEZ,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC"}
|
|
@@ -76,6 +76,19 @@ export interface RetrodictionReport {
|
|
|
76
76
|
/** The headline gate: no inconsistent node was found. */
|
|
77
77
|
readonly allConsistent: boolean;
|
|
78
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Monotone forward EVALUATION: propagate values from `groundTruth` through
|
|
81
|
+
* the graph (domain-checked; identifications supply identified names;
|
|
82
|
+
* non-finite or domain-refused edges do not fire). Each node is assigned
|
|
83
|
+
* the value of the first edge that fires for it.
|
|
84
|
+
*
|
|
85
|
+
* Exported `@internal` so the discovery magnitude-gate can read a quantity's
|
|
86
|
+
* value AT THE REGISTERED ANCHOR when the static representative-value table
|
|
87
|
+
* has no entry for it (graph-derived quantities like `schwarzschild-radius`).
|
|
88
|
+
*
|
|
89
|
+
* @internal
|
|
90
|
+
*/
|
|
91
|
+
export declare function forwardEvaluate(edges: readonly BridgeEdge[], groundTruth: Readonly<Record<string, number>>, idents: readonly QuantityIdentification[]): Map<string, number>;
|
|
79
92
|
/**
|
|
80
93
|
* Retrodict one node: mask it (source values from the target-removed
|
|
81
94
|
* graph), recover it via each incoming edge, and score the spread.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"retrodiction.d.ts","sourceRoot":"","sources":["../../src/composition/retrodiction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAI3D,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAC3B,YAAY,GACZ,cAAc,GACd,QAAQ,GACR,eAAe,CAAC;AAEpB,kEAAkE;AAClE,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC7D,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,qEAAqE;IACrE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACxD,oEAAoE;IACpE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,kEAAkE;IAClE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;
|
|
1
|
+
{"version":3,"file":"retrodiction.d.ts","sourceRoot":"","sources":["../../src/composition/retrodiction.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAE5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAI3D,gDAAgD;AAChD,MAAM,MAAM,mBAAmB,GAC3B,YAAY,GACZ,cAAc,GACd,QAAQ,GACR,eAAe,CAAC;AAEpB,kEAAkE;AAClE,MAAM,WAAW,sBAAsB;IACrC,4CAA4C;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;CACxB;AAED,uCAAuC;AACvC,MAAM,WAAW,mBAAmB;IAClC,0EAA0E;IAC1E,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC7D,iEAAiE;IACjE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,mEAAmE;IACnE,QAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACvD,qEAAqE;IACrE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED,mDAAmD;AACnD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;IACtC,uDAAuD;IACvD,QAAQ,CAAC,WAAW,EAAE,SAAS,sBAAsB,EAAE,CAAC;IACxD,oEAAoE;IACpE,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IACvB,4CAA4C;IAC5C,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,kEAAkE;IAClE,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,QAAQ,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,uDAAuD;AACvD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAChD,6DAA6D;IAC7D,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,yDAAyD;IACzD,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC;CACjC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC7C,MAAM,EAAE,SAAS,sBAAsB,EAAE,GACxC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CA8BrB;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAC3B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC7C,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,mBAAwB,GAC7B,kBAAkB,CA8DpB;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CACvB,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,WAAW,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC7C,IAAI,GAAE,mBAAwB,GAC7B,kBAAkB,CA2BpB"}
|