universal-physics-tensor 0.21.0 → 0.22.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/bin/upt.mjs +75 -4
- package/dist/canonical/canonical-equation.d.ts +79 -0
- package/dist/canonical/canonical-equation.d.ts.map +1 -0
- package/dist/canonical/canonical-equation.js +2 -0
- package/dist/canonical/canonical-equation.js.map +1 -0
- package/dist/canonical/dimensional-fields.d.ts +7 -0
- package/dist/canonical/dimensional-fields.d.ts.map +1 -0
- package/dist/canonical/dimensional-fields.js +31 -0
- package/dist/canonical/dimensional-fields.js.map +1 -0
- package/dist/canonical/entries/_l1-build.d.ts +22 -0
- package/dist/canonical/entries/_l1-build.d.ts.map +1 -0
- package/dist/canonical/entries/_l1-build.js +26 -0
- package/dist/canonical/entries/_l1-build.js.map +1 -0
- package/dist/canonical/entries/dimensional-classics.d.ts +11 -0
- package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -0
- package/dist/canonical/entries/dimensional-classics.js +194 -0
- package/dist/canonical/entries/dimensional-classics.js.map +1 -0
- package/dist/canonical/entries/l1-gravity-thermo.d.ts +12 -0
- package/dist/canonical/entries/l1-gravity-thermo.d.ts.map +1 -0
- package/dist/canonical/entries/l1-gravity-thermo.js +128 -0
- package/dist/canonical/entries/l1-gravity-thermo.js.map +1 -0
- package/dist/canonical/entries/l1-quantum-em.d.ts +10 -0
- package/dist/canonical/entries/l1-quantum-em.d.ts.map +1 -0
- package/dist/canonical/entries/l1-quantum-em.js +141 -0
- package/dist/canonical/entries/l1-quantum-em.js.map +1 -0
- package/dist/canonical/entries/relativity.d.ts +14 -0
- package/dist/canonical/entries/relativity.d.ts.map +1 -0
- package/dist/canonical/entries/relativity.js +114 -0
- package/dist/canonical/entries/relativity.js.map +1 -0
- package/dist/canonical/linkage.d.ts +27 -0
- package/dist/canonical/linkage.d.ts.map +1 -0
- package/dist/canonical/linkage.js +139 -0
- package/dist/canonical/linkage.js.map +1 -0
- package/dist/canonical/normal-form.d.ts +25 -0
- package/dist/canonical/normal-form.d.ts.map +1 -0
- package/dist/canonical/normal-form.js +107 -0
- package/dist/canonical/normal-form.js.map +1 -0
- package/dist/canonical/registry.d.ts +26 -0
- package/dist/canonical/registry.d.ts.map +1 -0
- package/dist/canonical/registry.js +46 -0
- package/dist/canonical/registry.js.map +1 -0
- package/dist/canonical/seed-l-layer.d.ts +20 -0
- package/dist/canonical/seed-l-layer.d.ts.map +1 -0
- package/dist/canonical/seed-l-layer.js +39 -0
- package/dist/canonical/seed-l-layer.js.map +1 -0
- package/dist/composition/discovery.d.ts +40 -6
- package/dist/composition/discovery.d.ts.map +1 -1
- package/dist/composition/discovery.js +56 -7
- package/dist/composition/discovery.js.map +1 -1
- package/dist/composition/representative-values.d.ts +46 -0
- package/dist/composition/representative-values.d.ts.map +1 -0
- package/dist/composition/representative-values.js +69 -0
- package/dist/composition/representative-values.js.map +1 -0
- package/dist/composition/symbolic-constants.d.ts.map +1 -1
- package/dist/composition/symbolic-constants.js +15 -1
- package/dist/composition/symbolic-constants.js.map +1 -1
- package/dist/core/constants.d.ts +6 -0
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +6 -0
- package/dist/core/constants.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +15 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
import { sym } from '../../bridges/equations/_be-helpers.js';
|
|
2
|
+
import { LENGTH, MASS, AREA, VELOCITY, ACTION, ENERGY, ENTROPY, TEMPERATURE, FORCE, DIMENSIONLESS, } from '../../dimensional/types.js';
|
|
3
|
+
import { dim, op, pow, l1 } from './_l1-build.js';
|
|
4
|
+
const GRAV = dim(3, -1, -2); // Newton's constant [L³ M⁻¹ T⁻²]
|
|
5
|
+
const VOLUME = dim(3); // [L³]
|
|
6
|
+
const PRESSURE = dim(-1, 1, -2); // [M L⁻¹ T⁻²]
|
|
7
|
+
const SB_FLUX = dim(0, 1, -3); // radiative flux W/m² = [M T⁻³]
|
|
8
|
+
const SIGMA_SB = dim(0, 1, -3, 0, -4); // Stefan–Boltzmann σ [M T⁻³ Θ⁻⁴] (Θ is 5th arg)
|
|
9
|
+
// ── Bekenstein–Hawking entropy S = k_B c³ A / (4 G ℏ) (AREA form) ─────────
|
|
10
|
+
const BH_TARGET = { name: 'bh-entropy', dim: ENTROPY };
|
|
11
|
+
const BH_GOV = [
|
|
12
|
+
{ name: 'k_B', dim: ENTROPY },
|
|
13
|
+
{ name: 'c', dim: VELOCITY },
|
|
14
|
+
{ name: 'A', dim: AREA },
|
|
15
|
+
{ name: 'G', dim: GRAV },
|
|
16
|
+
{ name: 'hbar', dim: ACTION },
|
|
17
|
+
];
|
|
18
|
+
// ── Landauer minimum erasure energy E = k_B T ln2 (natural log) ───────────
|
|
19
|
+
const LANDAUER_TARGET = { name: 'erasure-energy', dim: ENERGY };
|
|
20
|
+
const LANDAUER_GOV = [
|
|
21
|
+
{ name: 'k_B', dim: ENTROPY },
|
|
22
|
+
{ name: 'T', dim: TEMPERATURE },
|
|
23
|
+
];
|
|
24
|
+
// ── Newton's law of gravitation F = G m₁ m₂ / r² (free mass-ratio group) ──
|
|
25
|
+
const NEWTON_TARGET = { name: 'gravitational-force', dim: FORCE };
|
|
26
|
+
const NEWTON_GOV = [
|
|
27
|
+
{ name: 'G', dim: GRAV },
|
|
28
|
+
{ name: 'm_1', dim: MASS },
|
|
29
|
+
{ name: 'm_2', dim: MASS },
|
|
30
|
+
{ name: 'r', dim: LENGTH },
|
|
31
|
+
];
|
|
32
|
+
// ── Stefan–Boltzmann law j = σ T⁴ (radiative FLUX) ────────────────────────
|
|
33
|
+
const SB_TARGET = { name: 'radiative-flux', dim: SB_FLUX };
|
|
34
|
+
const SB_GOV = [
|
|
35
|
+
{ name: 'sigma_sb', dim: SIGMA_SB },
|
|
36
|
+
{ name: 'T', dim: TEMPERATURE },
|
|
37
|
+
];
|
|
38
|
+
// ── Ideal gas law P = N k_B T / V (N is a dimensionless count) ────────────
|
|
39
|
+
const GAS_TARGET = { name: 'pressure', dim: PRESSURE };
|
|
40
|
+
const GAS_GOV = [
|
|
41
|
+
{ name: 'k_B', dim: ENTROPY },
|
|
42
|
+
{ name: 'T', dim: TEMPERATURE },
|
|
43
|
+
{ name: 'V', dim: VOLUME },
|
|
44
|
+
];
|
|
45
|
+
export const L1_GRAVITY_THERMO = [
|
|
46
|
+
l1(BH_TARGET, BH_GOV, {
|
|
47
|
+
id: 'CE-bekenstein-hawking',
|
|
48
|
+
name: 'Bekenstein–Hawking entropy',
|
|
49
|
+
domain: 'general-relativity',
|
|
50
|
+
formula_latex: 'S = k_B c^3 A/(4 G \\hbar)',
|
|
51
|
+
epistemicStatus: 'fully-quantitative',
|
|
52
|
+
scalarAst: op('/', [
|
|
53
|
+
op('*', [sym('k_B', ENTROPY), pow(sym('c', VELOCITY), '3'), sym('A', AREA)]),
|
|
54
|
+
op('*', [sym('4', DIMENSIONLESS), sym('G', GRAV), sym('hbar', ACTION)]),
|
|
55
|
+
]),
|
|
56
|
+
forms: { areaOrRadius: 'area' },
|
|
57
|
+
regime: { force: 'gravitational', information: 'vonNeumann' },
|
|
58
|
+
assumptions: ['stationary horizon', 'semiclassical'],
|
|
59
|
+
references: ['Bekenstein 1973; Hawking 1975'],
|
|
60
|
+
// 42 = Hawking temperature (same black-hole-thermodynamics family). No
|
|
61
|
+
// bridge literally encodes S=A/4, so no restatesBridge.
|
|
62
|
+
partnerBridges: ['42'],
|
|
63
|
+
}),
|
|
64
|
+
l1(LANDAUER_TARGET, LANDAUER_GOV, {
|
|
65
|
+
id: 'CE-landauer',
|
|
66
|
+
name: 'Landauer erasure bound',
|
|
67
|
+
domain: 'information',
|
|
68
|
+
formula_latex: 'E = k_B T \\ln 2',
|
|
69
|
+
epistemicStatus: 'fully-quantitative',
|
|
70
|
+
scalarAst: op('*', [
|
|
71
|
+
sym('k_B', ENTROPY),
|
|
72
|
+
sym('T', TEMPERATURE),
|
|
73
|
+
sym('ln2', DIMENSIONLESS),
|
|
74
|
+
]),
|
|
75
|
+
forms: { logBase: 'e' },
|
|
76
|
+
regime: { scale: 'mesoscopic', information: 'shannon' },
|
|
77
|
+
assumptions: ['isothermal', 'quasi-static erasure'],
|
|
78
|
+
references: ['Landauer 1961'],
|
|
79
|
+
// 16 = "Information-Thermodynamics Bridge (Landauer's principle)" — a
|
|
80
|
+
// genuine restatement (the canonical Landauer bound IS bridge 16).
|
|
81
|
+
partnerBridges: ['16'],
|
|
82
|
+
restatesBridge: '16',
|
|
83
|
+
}),
|
|
84
|
+
l1(NEWTON_TARGET, NEWTON_GOV, {
|
|
85
|
+
id: 'CE-newton-gravitation',
|
|
86
|
+
name: "Newton's law of gravitation",
|
|
87
|
+
domain: 'gravitation',
|
|
88
|
+
formula_latex: 'F = G m_1 m_2/r^2',
|
|
89
|
+
epistemicStatus: 'fully-quantitative',
|
|
90
|
+
scalarAst: op('/', [
|
|
91
|
+
op('*', [sym('G', GRAV), sym('m_1', MASS), sym('m_2', MASS)]),
|
|
92
|
+
pow(sym('r', LENGTH), '2'),
|
|
93
|
+
]),
|
|
94
|
+
regime: { scale: 'classical', force: 'gravitational' },
|
|
95
|
+
assumptions: ['point masses', 'non-relativistic'],
|
|
96
|
+
references: ['Newton 1687'],
|
|
97
|
+
partnerBridges: [],
|
|
98
|
+
}),
|
|
99
|
+
l1(SB_TARGET, SB_GOV, {
|
|
100
|
+
id: 'CE-stefan-boltzmann',
|
|
101
|
+
name: 'Stefan–Boltzmann law',
|
|
102
|
+
domain: 'thermodynamics',
|
|
103
|
+
formula_latex: 'j = \\sigma T^4',
|
|
104
|
+
epistemicStatus: 'fully-quantitative',
|
|
105
|
+
scalarAst: op('*', [sym('sigma_sb', SIGMA_SB), pow(sym('T', TEMPERATURE), '4')]),
|
|
106
|
+
forms: { quantityKind: 'flux' },
|
|
107
|
+
regime: { scale: 'classical', force: 'electromagnetic' },
|
|
108
|
+
assumptions: ['blackbody', 'thermal equilibrium'],
|
|
109
|
+
references: ['Stefan 1879; Boltzmann 1884'],
|
|
110
|
+
partnerBridges: [],
|
|
111
|
+
}),
|
|
112
|
+
l1(GAS_TARGET, GAS_GOV, {
|
|
113
|
+
id: 'CE-ideal-gas',
|
|
114
|
+
name: 'Ideal gas law',
|
|
115
|
+
domain: 'thermodynamics',
|
|
116
|
+
formula_latex: 'P = N k_B T/V',
|
|
117
|
+
epistemicStatus: 'fully-quantitative',
|
|
118
|
+
scalarAst: op('/', [
|
|
119
|
+
op('*', [sym('N', DIMENSIONLESS), sym('k_B', ENTROPY), sym('T', TEMPERATURE)]),
|
|
120
|
+
sym('V', VOLUME),
|
|
121
|
+
]),
|
|
122
|
+
regime: { scale: 'classical', force: 'electromagnetic' },
|
|
123
|
+
assumptions: ['ideal gas', 'thermal equilibrium'],
|
|
124
|
+
references: ['Clapeyron 1834'],
|
|
125
|
+
partnerBridges: [],
|
|
126
|
+
}),
|
|
127
|
+
];
|
|
128
|
+
//# sourceMappingURL=l1-gravity-thermo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"l1-gravity-thermo.js","sourceRoot":"","sources":["../../../src/canonical/entries/l1-gravity-thermo.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* L1 (scalar-AST) canonical entries — quantum + electromagnetism. Coulomb's
|
|
3
|
+
* law, Planck–Einstein, de Broglie, Bohr radius, Wien's displacement, and the
|
|
4
|
+
* Lorentz-force magnitude. L0 fields derived from the engine (see `_l1-build`).
|
|
5
|
+
*
|
|
6
|
+
* @module canonical/entries/l1-quantum-em
|
|
7
|
+
*/
|
|
8
|
+
import type { CanonicalEquation } from '../canonical-equation.js';
|
|
9
|
+
export declare const L1_QUANTUM_EM: readonly CanonicalEquation[];
|
|
10
|
+
//# sourceMappingURL=l1-quantum-em.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"l1-quantum-em.d.ts","sourceRoot":"","sources":["../../../src/canonical/entries/l1-quantum-em.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAmElE,eAAO,MAAM,aAAa,EAAE,SAAS,iBAAiB,EA2FrD,CAAC"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { sym } from '../../bridges/equations/_be-helpers.js';
|
|
2
|
+
import { LENGTH, MASS, VELOCITY, ACTION, ENERGY, FREQUENCY, FORCE, CHARGE, DIMENSIONLESS, } from '../../dimensional/types.js';
|
|
3
|
+
import { dim, op, pow, l1 } from './_l1-build.js';
|
|
4
|
+
const PERMITTIVITY = dim(-3, -1, 4, 2); // ε₀ [I² T⁴ M⁻¹ L⁻³]
|
|
5
|
+
const MOMENTUM = dim(1, 1, -1); // [L M T⁻¹]
|
|
6
|
+
const MAGFIELD = dim(0, 1, -2, -1); // magnetic flux density (tesla) [M T⁻² I⁻¹]
|
|
7
|
+
const WIEN_B = dim(1, 0, 0, 0, 1); // Wien constant [L Θ]
|
|
8
|
+
// ── Coulomb's law F = q₁ q₂ / (4π ε₀ r²) (free charge-ratio group) ────────
|
|
9
|
+
const COULOMB_TARGET = { name: 'coulomb-force', dim: FORCE };
|
|
10
|
+
const COULOMB_GOV = [
|
|
11
|
+
{ name: 'q_1', dim: CHARGE },
|
|
12
|
+
{ name: 'q_2', dim: CHARGE },
|
|
13
|
+
{ name: 'epsilon_0', dim: PERMITTIVITY },
|
|
14
|
+
{ name: 'r', dim: LENGTH },
|
|
15
|
+
];
|
|
16
|
+
// ── Planck–Einstein E = h ν ────────────────────────────────────────────────
|
|
17
|
+
const PE_TARGET = { name: 'photon-energy', dim: ENERGY };
|
|
18
|
+
const PE_GOV = [
|
|
19
|
+
{ name: 'h', dim: ACTION },
|
|
20
|
+
{ name: 'nu', dim: FREQUENCY },
|
|
21
|
+
];
|
|
22
|
+
// ── de Broglie λ = h / p ───────────────────────────────────────────────────
|
|
23
|
+
const DB_TARGET = { name: 'de-broglie-wavelength', dim: LENGTH };
|
|
24
|
+
const DB_GOV = [
|
|
25
|
+
{ name: 'h', dim: ACTION },
|
|
26
|
+
{ name: 'p', dim: MOMENTUM },
|
|
27
|
+
];
|
|
28
|
+
// ── Bohr radius a₀ = 4π ε₀ ℏ² / (m_e e²) ───────────────────────────────────
|
|
29
|
+
const BOHR_TARGET = { name: 'bohr-radius', dim: LENGTH };
|
|
30
|
+
const BOHR_GOV = [
|
|
31
|
+
{ name: 'epsilon_0', dim: PERMITTIVITY },
|
|
32
|
+
{ name: 'hbar', dim: ACTION },
|
|
33
|
+
{ name: 'm_e', dim: MASS },
|
|
34
|
+
{ name: 'e', dim: CHARGE },
|
|
35
|
+
];
|
|
36
|
+
// ── Wien's displacement λ_max = b / T ──────────────────────────────────────
|
|
37
|
+
const WIEN_TARGET = { name: 'peak-wavelength', dim: LENGTH };
|
|
38
|
+
const WIEN_GOV = [
|
|
39
|
+
{ name: 'b', dim: WIEN_B },
|
|
40
|
+
{ name: 'T', dim: dim(0, 0, 0, 0, 1) },
|
|
41
|
+
];
|
|
42
|
+
// ── Lorentz force magnitude F = q v B ──────────────────────────────────────
|
|
43
|
+
const LORENTZ_TARGET = { name: 'lorentz-force', dim: FORCE };
|
|
44
|
+
const LORENTZ_GOV = [
|
|
45
|
+
{ name: 'q', dim: CHARGE },
|
|
46
|
+
{ name: 'v', dim: VELOCITY },
|
|
47
|
+
{ name: 'B', dim: MAGFIELD },
|
|
48
|
+
];
|
|
49
|
+
export const L1_QUANTUM_EM = [
|
|
50
|
+
l1(COULOMB_TARGET, COULOMB_GOV, {
|
|
51
|
+
id: 'CE-coulomb',
|
|
52
|
+
name: "Coulomb's law",
|
|
53
|
+
domain: 'electromagnetism',
|
|
54
|
+
formula_latex: 'F = q_1 q_2/(4\\pi\\varepsilon_0 r^2)',
|
|
55
|
+
epistemicStatus: 'fully-quantitative',
|
|
56
|
+
scalarAst: op('/', [
|
|
57
|
+
op('*', [sym('q_1', CHARGE), sym('q_2', CHARGE)]),
|
|
58
|
+
op('*', [
|
|
59
|
+
sym('4pi', DIMENSIONLESS),
|
|
60
|
+
sym('epsilon_0', PERMITTIVITY),
|
|
61
|
+
pow(sym('r', LENGTH), '2'),
|
|
62
|
+
]),
|
|
63
|
+
]),
|
|
64
|
+
regime: { scale: 'classical', force: 'electromagnetic' },
|
|
65
|
+
assumptions: ['point charges', 'vacuum', 'electrostatic'],
|
|
66
|
+
references: ['Coulomb 1785'],
|
|
67
|
+
partnerBridges: [],
|
|
68
|
+
}),
|
|
69
|
+
l1(PE_TARGET, PE_GOV, {
|
|
70
|
+
id: 'CE-planck-einstein',
|
|
71
|
+
name: 'Planck–Einstein relation',
|
|
72
|
+
domain: 'quantum',
|
|
73
|
+
formula_latex: 'E = h\\nu',
|
|
74
|
+
epistemicStatus: 'fully-quantitative',
|
|
75
|
+
scalarAst: op('*', [sym('h', ACTION), sym('nu', FREQUENCY)]),
|
|
76
|
+
regime: { scale: 'quantum', force: 'electromagnetic' },
|
|
77
|
+
assumptions: [],
|
|
78
|
+
references: ['Planck 1900; Einstein 1905'],
|
|
79
|
+
partnerBridges: [],
|
|
80
|
+
}),
|
|
81
|
+
l1(DB_TARGET, DB_GOV, {
|
|
82
|
+
id: 'CE-de-broglie',
|
|
83
|
+
name: 'de Broglie wavelength',
|
|
84
|
+
domain: 'quantum',
|
|
85
|
+
formula_latex: '\\lambda = h/p',
|
|
86
|
+
epistemicStatus: 'fully-quantitative',
|
|
87
|
+
scalarAst: op('/', [sym('h', ACTION), sym('p', MOMENTUM)]),
|
|
88
|
+
regime: { scale: 'quantum' },
|
|
89
|
+
assumptions: [],
|
|
90
|
+
references: ['de Broglie 1924'],
|
|
91
|
+
partnerBridges: [],
|
|
92
|
+
}),
|
|
93
|
+
l1(BOHR_TARGET, BOHR_GOV, {
|
|
94
|
+
id: 'CE-bohr-radius',
|
|
95
|
+
name: 'Bohr radius',
|
|
96
|
+
domain: 'quantum',
|
|
97
|
+
formula_latex: 'a_0 = 4\\pi\\varepsilon_0\\hbar^2/(m_e e^2)',
|
|
98
|
+
epistemicStatus: 'fully-quantitative',
|
|
99
|
+
scalarAst: op('/', [
|
|
100
|
+
op('*', [
|
|
101
|
+
sym('4pi', DIMENSIONLESS),
|
|
102
|
+
sym('epsilon_0', PERMITTIVITY),
|
|
103
|
+
pow(sym('hbar', ACTION), '2'),
|
|
104
|
+
]),
|
|
105
|
+
op('*', [sym('m_e', MASS), pow(sym('e', CHARGE), '2')]),
|
|
106
|
+
]),
|
|
107
|
+
regime: { scale: 'quantum', force: 'electromagnetic' },
|
|
108
|
+
assumptions: ['hydrogen-like', 'non-relativistic'],
|
|
109
|
+
references: ['Bohr 1913'],
|
|
110
|
+
partnerBridges: [],
|
|
111
|
+
}),
|
|
112
|
+
l1(WIEN_TARGET, WIEN_GOV, {
|
|
113
|
+
id: 'CE-wien',
|
|
114
|
+
name: "Wien's displacement law",
|
|
115
|
+
domain: 'thermodynamics',
|
|
116
|
+
formula_latex: '\\lambda_{max} = b/T',
|
|
117
|
+
epistemicStatus: 'fully-quantitative',
|
|
118
|
+
scalarAst: op('/', [sym('b', WIEN_B), sym('T', dim(0, 0, 0, 0, 1))]),
|
|
119
|
+
regime: { scale: 'classical', force: 'electromagnetic' },
|
|
120
|
+
assumptions: ['blackbody', 'thermal equilibrium'],
|
|
121
|
+
references: ['Wien 1893'],
|
|
122
|
+
partnerBridges: [],
|
|
123
|
+
}),
|
|
124
|
+
l1(LORENTZ_TARGET, LORENTZ_GOV, {
|
|
125
|
+
id: 'CE-lorentz-force',
|
|
126
|
+
name: 'Lorentz force (magnitude)',
|
|
127
|
+
domain: 'electromagnetism',
|
|
128
|
+
formula_latex: 'F = q v B',
|
|
129
|
+
epistemicStatus: 'fully-quantitative',
|
|
130
|
+
scalarAst: op('*', [
|
|
131
|
+
sym('q', CHARGE),
|
|
132
|
+
sym('v', VELOCITY),
|
|
133
|
+
sym('B', MAGFIELD),
|
|
134
|
+
]),
|
|
135
|
+
regime: { scale: 'classical', force: 'electromagnetic' },
|
|
136
|
+
assumptions: ['v ⟂ B (magnitude only)'],
|
|
137
|
+
references: ['Lorentz 1895'],
|
|
138
|
+
partnerBridges: [],
|
|
139
|
+
}),
|
|
140
|
+
];
|
|
141
|
+
//# sourceMappingURL=l1-quantum-em.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"l1-quantum-em.js","sourceRoot":"","sources":["../../../src/canonical/entries/l1-quantum-em.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Relativity canonical entries: the Einstein field equation (L2 — a structural
|
|
3
|
+
* `EinsteinFieldEquationNode` validated by the existing field-equation
|
|
4
|
+
* predicate) and the Friedmann equation (L1 — the flat, matter-dominated scalar
|
|
5
|
+
* form H² = 8πG ρ / 3).
|
|
6
|
+
*
|
|
7
|
+
* @module canonical/entries/relativity
|
|
8
|
+
*/
|
|
9
|
+
import type { CanonicalEquation } from '../canonical-equation.js';
|
|
10
|
+
import type { EinsteinFieldEquationNode } from '../../dimensional/einstein-equation.js';
|
|
11
|
+
/** The canonical Einstein field equation node, G_μν + Λg_μν = (8πG/c⁴)T_μν. */
|
|
12
|
+
export declare const EFE_NODE: EinsteinFieldEquationNode;
|
|
13
|
+
export declare const RELATIVITY: readonly CanonicalEquation[];
|
|
14
|
+
//# sourceMappingURL=relativity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relativity.d.ts","sourceRoot":"","sources":["../../../src/canonical/entries/relativity.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAC;AA+FxF,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,EAAE,yBAOtB,CAAC;AAoBF,eAAO,MAAM,UAAU,EAAE,SAAS,iBAAiB,EA4BlD,CAAC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { metric } from '../../dimensional/metric.js';
|
|
2
|
+
import { tsym } from '../../dimensional/tensor.js';
|
|
3
|
+
import { sym } from '../../bridges/equations/_be-helpers.js';
|
|
4
|
+
import { LENGTH, DIMENSIONLESS } from '../../dimensional/types.js';
|
|
5
|
+
import { dim, op, l1 } from './_l1-build.js';
|
|
6
|
+
// ── EFE node builders (the canonical G_μν + Λg_μν = (8πG/c⁴)T_μν structure) ──
|
|
7
|
+
const L_INV2 = dim(-2); // [L⁻²] — per-component dim of every EFE term
|
|
8
|
+
const ENERGY_DENSITY = dim(-1, 1, -2); // T_μν componentDim [M L⁻¹ T⁻²]
|
|
9
|
+
function buildRiemann(mu = 'mu', nu = 'nu') {
|
|
10
|
+
const gLower = metric('g', [
|
|
11
|
+
{ label: 'a', variance: 'lower' },
|
|
12
|
+
{ label: 'b', variance: 'lower' },
|
|
13
|
+
], DIMENSIONLESS, '+,-,-,-');
|
|
14
|
+
const gInverse = metric('g_inv', [
|
|
15
|
+
{ label: 'a', variance: 'upper' },
|
|
16
|
+
{ label: 'b', variance: 'upper' },
|
|
17
|
+
], DIMENSIONLESS, '+,-,-,-');
|
|
18
|
+
const xCoord = tsym('x', [{ label: 'c', variance: 'upper' }], LENGTH, 'coordinate');
|
|
19
|
+
return {
|
|
20
|
+
kind: 'riemann-tensor',
|
|
21
|
+
upperIndex: { label: 'rho', variance: 'upper' },
|
|
22
|
+
lowerIndices: [
|
|
23
|
+
{ label: mu, variance: 'lower' },
|
|
24
|
+
{ label: 'lambda', variance: 'lower' },
|
|
25
|
+
{ label: nu, variance: 'lower' },
|
|
26
|
+
],
|
|
27
|
+
gLower,
|
|
28
|
+
gInverse,
|
|
29
|
+
xCoord,
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function buildEinstein(mu = 'mu', nu = 'nu') {
|
|
33
|
+
const riemann = buildRiemann(mu, nu);
|
|
34
|
+
return {
|
|
35
|
+
kind: 'einstein-tensor',
|
|
36
|
+
riemann,
|
|
37
|
+
gLower: riemann.gLower,
|
|
38
|
+
gInverse: riemann.gInverse,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const buildT = (mu = 'mu', nu = 'nu') => ({
|
|
42
|
+
kind: 'stress-energy',
|
|
43
|
+
symbol: 'T',
|
|
44
|
+
indices: [
|
|
45
|
+
{ label: mu, variance: 'lower' },
|
|
46
|
+
{ label: nu, variance: 'lower' },
|
|
47
|
+
],
|
|
48
|
+
symmetry: 'symmetric',
|
|
49
|
+
componentDim: ENERGY_DENSITY,
|
|
50
|
+
});
|
|
51
|
+
const buildLambda = () => ({
|
|
52
|
+
kind: 'cosmological-constant',
|
|
53
|
+
symbol: 'Λ',
|
|
54
|
+
dim: L_INV2,
|
|
55
|
+
});
|
|
56
|
+
const buildMetric = () => metric('g_metric', [
|
|
57
|
+
{ label: 'mu', variance: 'lower' },
|
|
58
|
+
{ label: 'nu', variance: 'lower' },
|
|
59
|
+
], DIMENSIONLESS, '+,-,-,-');
|
|
60
|
+
/** The canonical Einstein field equation node, G_μν + Λg_μν = (8πG/c⁴)T_μν. */
|
|
61
|
+
export const EFE_NODE = {
|
|
62
|
+
kind: 'einstein-equation',
|
|
63
|
+
lhs: buildEinstein('mu', 'nu'),
|
|
64
|
+
cosmological: buildLambda(),
|
|
65
|
+
metric: buildMetric(),
|
|
66
|
+
rhs: buildT('mu', 'nu'),
|
|
67
|
+
coupling: 'einstein',
|
|
68
|
+
};
|
|
69
|
+
// ── dimensional layer for the EFE (per-component [L⁻²] from 8πG·T/c⁴) ────────
|
|
70
|
+
const GRAV = dim(3, -1, -2);
|
|
71
|
+
const EFE_TARGET = { name: 'efe-curvature', dim: L_INV2 };
|
|
72
|
+
const EFE_GOV = [
|
|
73
|
+
{ name: 'G', dim: GRAV },
|
|
74
|
+
{ name: 'c', dim: dim(1, 0, -1) },
|
|
75
|
+
{ name: 'stress-energy-density', dim: ENERGY_DENSITY },
|
|
76
|
+
];
|
|
77
|
+
// ── Friedmann (flat, matter-dominated): H² = 8πG ρ / 3 ───────────────────────
|
|
78
|
+
const HSQUARED = dim(0, 0, -2); // [T⁻²]
|
|
79
|
+
const DENSITY = dim(-3, 1); // [M L⁻³]
|
|
80
|
+
const FRIEDMANN_TARGET = { name: 'hubble-rate-squared', dim: HSQUARED };
|
|
81
|
+
const FRIEDMANN_GOV = [
|
|
82
|
+
{ name: 'G', dim: GRAV },
|
|
83
|
+
{ name: 'rho', dim: DENSITY },
|
|
84
|
+
];
|
|
85
|
+
export const RELATIVITY = [
|
|
86
|
+
l1(EFE_TARGET, EFE_GOV, {
|
|
87
|
+
id: 'CE-einstein-field-eq',
|
|
88
|
+
name: 'Einstein field equation',
|
|
89
|
+
domain: 'general-relativity',
|
|
90
|
+
formula_latex: 'G_{\\mu\\nu} + \\Lambda g_{\\mu\\nu} = (8\\pi G/c^4) T_{\\mu\\nu}',
|
|
91
|
+
epistemicStatus: 'fully-quantitative',
|
|
92
|
+
fieldEquation: EFE_NODE,
|
|
93
|
+
regime: { force: 'gravitational', symmetry: 'poincare' },
|
|
94
|
+
assumptions: ['classical GR', 'pseudo-Riemannian spacetime'],
|
|
95
|
+
references: ['Einstein 1915'],
|
|
96
|
+
partnerBridges: ['13'], // 13 = Information-Geometry (Jacobson thermodynamic EFE)
|
|
97
|
+
}),
|
|
98
|
+
l1(FRIEDMANN_TARGET, FRIEDMANN_GOV, {
|
|
99
|
+
id: 'CE-friedmann',
|
|
100
|
+
name: 'Friedmann equation (flat, matter-dominated)',
|
|
101
|
+
domain: 'cosmology',
|
|
102
|
+
formula_latex: 'H^2 = 8\\pi G \\rho/3',
|
|
103
|
+
epistemicStatus: 'fully-quantitative',
|
|
104
|
+
scalarAst: op('/', [
|
|
105
|
+
op('*', [sym('8pi', DIMENSIONLESS), sym('G', GRAV), sym('rho', DENSITY)]),
|
|
106
|
+
sym('3', DIMENSIONLESS),
|
|
107
|
+
]),
|
|
108
|
+
regime: { scale: 'cosmological', force: 'gravitational' },
|
|
109
|
+
assumptions: ['flat (k=0)', 'matter-dominated', 'Λ=0', 'FLRW'],
|
|
110
|
+
references: ['Friedmann 1922'],
|
|
111
|
+
partnerBridges: [],
|
|
112
|
+
}),
|
|
113
|
+
];
|
|
114
|
+
//# sourceMappingURL=relativity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relativity.js","sourceRoot":"","sources":["../../../src/canonical/entries/relativity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/** Best-effort numerical-recovery outcome. */
|
|
2
|
+
export interface RecoveryOutcome {
|
|
3
|
+
/** Both ASTs evaluated at every sample (no unresolved leaf). */
|
|
4
|
+
readonly tested: boolean;
|
|
5
|
+
/** Spread of the canonical/bridge value ratio across samples (0 ⇒ they agree
|
|
6
|
+
* up to a single constant factor). `NaN` when not tested. */
|
|
7
|
+
readonly maxRelErr: number;
|
|
8
|
+
}
|
|
9
|
+
/** One bridge↔canonical comparison. */
|
|
10
|
+
export interface LinkageResult {
|
|
11
|
+
readonly canonicalId: string;
|
|
12
|
+
readonly bridgeId: number;
|
|
13
|
+
/** Inferred dimensions agree. */
|
|
14
|
+
readonly dimMatch: boolean;
|
|
15
|
+
/** Same relation up to dimensionless factors (`normalForm`). */
|
|
16
|
+
readonly structuralMatch: boolean;
|
|
17
|
+
readonly recovery: RecoveryOutcome | null;
|
|
18
|
+
readonly classification: 'restates-canonical' | 'recovers' | 'dimensional-only' | 'unrelated';
|
|
19
|
+
}
|
|
20
|
+
/** Compare one canonical entry against one bridge. */
|
|
21
|
+
export declare function classifyLinkage(canonicalId: string, bridgeId: number): LinkageResult;
|
|
22
|
+
/**
|
|
23
|
+
* Scan every canonical entry (with a scalar-AST) against every bridge RHS, and
|
|
24
|
+
* return the non-`unrelated` results — the physicist's linkage worklist.
|
|
25
|
+
*/
|
|
26
|
+
export declare function scanLinkages(): LinkageResult[];
|
|
27
|
+
//# sourceMappingURL=linkage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linkage.d.ts","sourceRoot":"","sources":["../../src/canonical/linkage.ts"],"names":[],"mappings":"AAwBA,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,gEAAgE;IAChE,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB;kEAC8D;IAC9D,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAED,uCAAuC;AACvC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,iCAAiC;IACjC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,gEAAgE;IAChE,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;IAClC,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IAC1C,QAAQ,CAAC,cAAc,EACnB,oBAAoB,GACpB,UAAU,GACV,kBAAkB,GAClB,WAAW,CAAC;CACjB;AAwFD,sDAAsD;AACtD,wBAAgB,eAAe,CAC7B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,aAAa,CAsCf;AAED;;;GAGG;AACH,wBAAgB,YAAY,IAAI,aAAa,EAAE,CAU9C"}
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { validate } from '../dimensional/validator.js';
|
|
2
|
+
import { evalExpr } from '../composition/expr-eval.js';
|
|
3
|
+
import { CONSTANTS } from '../composition/symbolic-constants.js';
|
|
4
|
+
import { BRIDGE_RHS_BY_ID } from '../bridges/rhs-registry.js';
|
|
5
|
+
import { CANONICAL_EQUATIONS, canonicalById } from './registry.js';
|
|
6
|
+
import { structurallyEqual } from './normal-form.js';
|
|
7
|
+
const dimEqual = (a, b) => a.L === b.L &&
|
|
8
|
+
a.M === b.M &&
|
|
9
|
+
a.T === b.T &&
|
|
10
|
+
a.I === b.I &&
|
|
11
|
+
a.Theta === b.Theta &&
|
|
12
|
+
a.N === b.N &&
|
|
13
|
+
a.J === b.J;
|
|
14
|
+
const isDimensionless = (d) => d.L === 0 &&
|
|
15
|
+
d.M === 0 &&
|
|
16
|
+
d.T === 0 &&
|
|
17
|
+
d.I === 0 &&
|
|
18
|
+
d.Theta === 0 &&
|
|
19
|
+
d.N === 0 &&
|
|
20
|
+
d.J === 0;
|
|
21
|
+
/**
|
|
22
|
+
* Collect leaves `evalExpr` can't resolve (not a registered constant, not a
|
|
23
|
+
* numeric literal), split into physical `vars` (non-dimensionless — varied
|
|
24
|
+
* across samples) and `dimless` (dimensionless — held fixed: they ARE the
|
|
25
|
+
* constant factor "up to" which recovery is measured).
|
|
26
|
+
*/
|
|
27
|
+
function collectLeaves(node, vars, dimless) {
|
|
28
|
+
switch (node.kind) {
|
|
29
|
+
case 'symbol':
|
|
30
|
+
if (!(node.name in CONSTANTS) && Number.isNaN(Number(node.name))) {
|
|
31
|
+
(isDimensionless(node.dim) ? dimless : vars).add(node.name);
|
|
32
|
+
}
|
|
33
|
+
return;
|
|
34
|
+
case 'op':
|
|
35
|
+
for (const a of node.args)
|
|
36
|
+
collectLeaves(a, vars, dimless);
|
|
37
|
+
return;
|
|
38
|
+
case 'transcendental':
|
|
39
|
+
collectLeaves(node.arg, vars, dimless);
|
|
40
|
+
return;
|
|
41
|
+
case 'abs':
|
|
42
|
+
collectLeaves(node.arg, vars, dimless);
|
|
43
|
+
return;
|
|
44
|
+
default:
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
const SAMPLE_FACTORS = [1, 2, 3];
|
|
49
|
+
/** Best-effort check that two ASTs agree up to a constant ratio. */
|
|
50
|
+
function numericalRecovery(canon, bridge) {
|
|
51
|
+
const vars = new Set();
|
|
52
|
+
const dimless = new Set();
|
|
53
|
+
collectLeaves(canon, vars, dimless);
|
|
54
|
+
collectLeaves(bridge, vars, dimless);
|
|
55
|
+
const names = [...vars].sort();
|
|
56
|
+
const ratios = [];
|
|
57
|
+
for (const s of SAMPLE_FACTORS) {
|
|
58
|
+
const values = {};
|
|
59
|
+
names.forEach((n, i) => {
|
|
60
|
+
values[n] = (1.3 + 0.7 * i) * s; // distinct positive samples
|
|
61
|
+
});
|
|
62
|
+
// Hold unresolved dimensionless leaves fixed — recovery is "up to" them.
|
|
63
|
+
for (const n of dimless)
|
|
64
|
+
values[n] = 1;
|
|
65
|
+
let cv;
|
|
66
|
+
let bv;
|
|
67
|
+
try {
|
|
68
|
+
cv = evalExpr(canon, values);
|
|
69
|
+
bv = evalExpr(bridge, values);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
return { tested: false, maxRelErr: NaN };
|
|
73
|
+
}
|
|
74
|
+
// Guard cv===0 too: with cv===0 the ratio is 0 at every sample, so the
|
|
75
|
+
// relative-spread denominator r0===0 ⇒ NaN — a false "tested" result.
|
|
76
|
+
if (!Number.isFinite(cv) || !Number.isFinite(bv) || bv === 0 || cv === 0) {
|
|
77
|
+
return { tested: false, maxRelErr: NaN };
|
|
78
|
+
}
|
|
79
|
+
ratios.push(cv / bv);
|
|
80
|
+
}
|
|
81
|
+
const r0 = ratios[0];
|
|
82
|
+
const maxRelErr = Math.max(...ratios.map((r) => Math.abs((r - r0) / r0)));
|
|
83
|
+
return { tested: true, maxRelErr };
|
|
84
|
+
}
|
|
85
|
+
/** Compare one canonical entry against one bridge. */
|
|
86
|
+
export function classifyLinkage(canonicalId, bridgeId) {
|
|
87
|
+
const canon = canonicalById(canonicalId);
|
|
88
|
+
const bridgeRhs = BRIDGE_RHS_BY_ID.get(bridgeId);
|
|
89
|
+
const base = { canonicalId, bridgeId };
|
|
90
|
+
if (!canon || !bridgeRhs || !canon.scalarAst) {
|
|
91
|
+
return {
|
|
92
|
+
...base,
|
|
93
|
+
dimMatch: false,
|
|
94
|
+
structuralMatch: false,
|
|
95
|
+
recovery: null,
|
|
96
|
+
classification: 'unrelated',
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
const bridgeDim = validate(bridgeRhs);
|
|
100
|
+
const dimMatch = bridgeDim.ok &&
|
|
101
|
+
bridgeDim.inferredDimension != null &&
|
|
102
|
+
dimEqual(bridgeDim.inferredDimension, canon.dimensional.target.dim);
|
|
103
|
+
const structuralMatch = structurallyEqual(canon.scalarAst, bridgeRhs);
|
|
104
|
+
const recovery = structuralMatch
|
|
105
|
+
? numericalRecovery(canon.scalarAst, bridgeRhs)
|
|
106
|
+
: null;
|
|
107
|
+
let classification;
|
|
108
|
+
if (structuralMatch) {
|
|
109
|
+
classification =
|
|
110
|
+
canon.restatesBridge === String(bridgeId)
|
|
111
|
+
? 'restates-canonical'
|
|
112
|
+
: 'recovers';
|
|
113
|
+
}
|
|
114
|
+
else if (dimMatch) {
|
|
115
|
+
classification = 'dimensional-only';
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
classification = 'unrelated';
|
|
119
|
+
}
|
|
120
|
+
return { ...base, dimMatch, structuralMatch, recovery, classification };
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Scan every canonical entry (with a scalar-AST) against every bridge RHS, and
|
|
124
|
+
* return the non-`unrelated` results — the physicist's linkage worklist.
|
|
125
|
+
*/
|
|
126
|
+
export function scanLinkages() {
|
|
127
|
+
const results = [];
|
|
128
|
+
for (const ce of CANONICAL_EQUATIONS) {
|
|
129
|
+
if (!ce.scalarAst)
|
|
130
|
+
continue;
|
|
131
|
+
for (const bridgeId of BRIDGE_RHS_BY_ID.keys()) {
|
|
132
|
+
const r = classifyLinkage(ce.id, bridgeId);
|
|
133
|
+
if (r.classification !== 'unrelated')
|
|
134
|
+
results.push(r);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return results;
|
|
138
|
+
}
|
|
139
|
+
//# sourceMappingURL=linkage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"linkage.js","sourceRoot":"","sources":["../../src/canonical/linkage.ts"],"names":[],"mappings":"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"}
|