universal-physics-tensor 2.0.1 → 3.1.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.
Files changed (214) hide show
  1. package/README.md +5 -5
  2. package/dist/atlas/association.d.ts.map +1 -1
  3. package/dist/atlas/association.js +7 -0
  4. package/dist/atlas/association.js.map +1 -1
  5. package/dist/atlas/catalog-formal-ref.js +1 -1
  6. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  7. package/dist/atlas/physjs-ref.d.ts +31 -3
  8. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  9. package/dist/atlas/physjs-ref.js +132 -9
  10. package/dist/atlas/physjs-ref.js.map +1 -1
  11. package/dist/bridges/be69-fast-magnetosonic.d.ts +30 -0
  12. package/dist/bridges/be69-fast-magnetosonic.d.ts.map +1 -0
  13. package/dist/bridges/be69-fast-magnetosonic.js +33 -0
  14. package/dist/bridges/be69-fast-magnetosonic.js.map +1 -0
  15. package/dist/bridges/be70-einstein-relation.d.ts +30 -0
  16. package/dist/bridges/be70-einstein-relation.d.ts.map +1 -0
  17. package/dist/bridges/be70-einstein-relation.js +33 -0
  18. package/dist/bridges/be70-einstein-relation.js.map +1 -0
  19. package/dist/bridges/be71-clapeyron.d.ts +43 -0
  20. package/dist/bridges/be71-clapeyron.d.ts.map +1 -0
  21. package/dist/bridges/be71-clapeyron.js +32 -0
  22. package/dist/bridges/be71-clapeyron.js.map +1 -0
  23. package/dist/bridges/be72-gravitational-redshift.d.ts +43 -0
  24. package/dist/bridges/be72-gravitational-redshift.d.ts.map +1 -0
  25. package/dist/bridges/be72-gravitational-redshift.js +32 -0
  26. package/dist/bridges/be72-gravitational-redshift.js.map +1 -0
  27. package/dist/bridges/be73-kelvin-peltier.d.ts +42 -0
  28. package/dist/bridges/be73-kelvin-peltier.d.ts.map +1 -0
  29. package/dist/bridges/be73-kelvin-peltier.js +31 -0
  30. package/dist/bridges/be73-kelvin-peltier.js.map +1 -0
  31. package/dist/bridges/be74-magnetic-pressure.d.ts +27 -0
  32. package/dist/bridges/be74-magnetic-pressure.d.ts.map +1 -0
  33. package/dist/bridges/be74-magnetic-pressure.js +29 -0
  34. package/dist/bridges/be74-magnetic-pressure.js.map +1 -0
  35. package/dist/bridges/be75-london-penetration.d.ts +27 -0
  36. package/dist/bridges/be75-london-penetration.d.ts.map +1 -0
  37. package/dist/bridges/be75-london-penetration.js +31 -0
  38. package/dist/bridges/be75-london-penetration.js.map +1 -0
  39. package/dist/bridges/be76-plasma-beta.d.ts +32 -0
  40. package/dist/bridges/be76-plasma-beta.d.ts.map +1 -0
  41. package/dist/bridges/be76-plasma-beta.js +34 -0
  42. package/dist/bridges/be76-plasma-beta.js.map +1 -0
  43. package/dist/bridges/bridge-equations.d.ts +16 -0
  44. package/dist/bridges/bridge-equations.d.ts.map +1 -1
  45. package/dist/bridges/bridge-equations.js +16 -0
  46. package/dist/bridges/bridge-equations.js.map +1 -1
  47. package/dist/bridges/evaluators.d.ts.map +1 -1
  48. package/dist/bridges/evaluators.js +42 -1
  49. package/dist/bridges/evaluators.js.map +1 -1
  50. package/dist/bridges/index.d.ts +17 -1
  51. package/dist/bridges/index.d.ts.map +1 -1
  52. package/dist/bridges/index.js +178 -2
  53. package/dist/bridges/index.js.map +1 -1
  54. package/dist/cli/closed-form-range.d.ts +16 -0
  55. package/dist/cli/closed-form-range.d.ts.map +1 -0
  56. package/dist/cli/closed-form-range.js +31 -0
  57. package/dist/cli/closed-form-range.js.map +1 -0
  58. package/dist/cli/command.d.ts +4 -3
  59. package/dist/cli/command.d.ts.map +1 -1
  60. package/dist/cli/command.js +4 -3
  61. package/dist/cli/command.js.map +1 -1
  62. package/dist/cli/commands/_atlas-map.d.ts +2 -1
  63. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  64. package/dist/cli/commands/_atlas-map.js +8 -7
  65. package/dist/cli/commands/_atlas-map.js.map +1 -1
  66. package/dist/cli/commands/_atlas-route.d.ts.map +1 -1
  67. package/dist/cli/commands/_atlas-route.js +3 -2
  68. package/dist/cli/commands/_atlas-route.js.map +1 -1
  69. package/dist/cli/commands/atlas.d.ts.map +1 -1
  70. package/dist/cli/commands/atlas.js +11 -9
  71. package/dist/cli/commands/atlas.js.map +1 -1
  72. package/dist/cli/commands/audit.d.ts.map +1 -1
  73. package/dist/cli/commands/audit.js +16 -3
  74. package/dist/cli/commands/audit.js.map +1 -1
  75. package/dist/cli/commands/axes.d.ts.map +1 -1
  76. package/dist/cli/commands/axes.js +2 -1
  77. package/dist/cli/commands/axes.js.map +1 -1
  78. package/dist/cli/commands/candidates.d.ts.map +1 -1
  79. package/dist/cli/commands/candidates.js +2 -1
  80. package/dist/cli/commands/candidates.js.map +1 -1
  81. package/dist/cli/commands/chain.js +2 -1
  82. package/dist/cli/commands/chain.js.map +1 -1
  83. package/dist/cli/commands/confront.d.ts.map +1 -1
  84. package/dist/cli/commands/confront.js +5 -4
  85. package/dist/cli/commands/confront.js.map +1 -1
  86. package/dist/cli/commands/connectors.d.ts.map +1 -1
  87. package/dist/cli/commands/connectors.js +34 -14
  88. package/dist/cli/commands/connectors.js.map +1 -1
  89. package/dist/cli/commands/derive.d.ts.map +1 -1
  90. package/dist/cli/commands/derive.js +24 -5
  91. package/dist/cli/commands/derive.js.map +1 -1
  92. package/dist/cli/commands/discover.d.ts.map +1 -1
  93. package/dist/cli/commands/discover.js +5 -1
  94. package/dist/cli/commands/discover.js.map +1 -1
  95. package/dist/cli/commands/eval.js +2 -2
  96. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  97. package/dist/cli/commands/evaluate.js +3 -2
  98. package/dist/cli/commands/evaluate.js.map +1 -1
  99. package/dist/cli/commands/explain.d.ts.map +1 -1
  100. package/dist/cli/commands/explain.js +45 -37
  101. package/dist/cli/commands/explain.js.map +1 -1
  102. package/dist/cli/commands/map.d.ts.map +1 -1
  103. package/dist/cli/commands/map.js +47 -32
  104. package/dist/cli/commands/map.js.map +1 -1
  105. package/dist/cli/commands/path.d.ts.map +1 -1
  106. package/dist/cli/commands/path.js +2 -1
  107. package/dist/cli/commands/path.js.map +1 -1
  108. package/dist/cli/commands/probe.d.ts.map +1 -1
  109. package/dist/cli/commands/probe.js +2 -1
  110. package/dist/cli/commands/probe.js.map +1 -1
  111. package/dist/cli/commands/regime.d.ts.map +1 -1
  112. package/dist/cli/commands/regime.js +36 -24
  113. package/dist/cli/commands/regime.js.map +1 -1
  114. package/dist/cli/determination.d.ts +36 -0
  115. package/dist/cli/determination.d.ts.map +1 -0
  116. package/dist/cli/determination.js +32 -0
  117. package/dist/cli/determination.js.map +1 -0
  118. package/dist/cli/errors.d.ts +5 -1
  119. package/dist/cli/errors.d.ts.map +1 -1
  120. package/dist/cli/errors.js +5 -1
  121. package/dist/cli/errors.js.map +1 -1
  122. package/dist/cli/eval-numbers.d.ts.map +1 -1
  123. package/dist/cli/eval-numbers.js +14 -4
  124. package/dist/cli/eval-numbers.js.map +1 -1
  125. package/dist/cli/main.d.ts.map +1 -1
  126. package/dist/cli/main.js +10 -303
  127. package/dist/cli/main.js.map +1 -1
  128. package/dist/cli/published-url.d.ts +12 -0
  129. package/dist/cli/published-url.d.ts.map +1 -0
  130. package/dist/cli/published-url.js +18 -0
  131. package/dist/cli/published-url.js.map +1 -0
  132. package/dist/cli/search-index.d.ts +3 -1
  133. package/dist/cli/search-index.d.ts.map +1 -1
  134. package/dist/cli/search-index.js +25 -7
  135. package/dist/cli/search-index.js.map +1 -1
  136. package/dist/cli/statuses.d.ts.map +1 -1
  137. package/dist/cli/statuses.js +7 -0
  138. package/dist/cli/statuses.js.map +1 -1
  139. package/dist/cli/top-level-help.d.ts +19 -0
  140. package/dist/cli/top-level-help.d.ts.map +1 -0
  141. package/dist/cli/top-level-help.js +41 -0
  142. package/dist/cli/top-level-help.js.map +1 -0
  143. package/dist/cli-api.d.ts +4 -2
  144. package/dist/cli-api.d.ts.map +1 -1
  145. package/dist/cli-api.js +4 -1
  146. package/dist/cli-api.js.map +1 -1
  147. package/dist/composition/adjudication.d.ts.map +1 -1
  148. package/dist/composition/adjudication.js +7 -0
  149. package/dist/composition/adjudication.js.map +1 -1
  150. package/dist/composition/aliases.d.ts +27 -0
  151. package/dist/composition/aliases.d.ts.map +1 -0
  152. package/dist/composition/aliases.js +105 -0
  153. package/dist/composition/aliases.js.map +1 -0
  154. package/dist/composition/bridge-analysis.d.ts +8 -4
  155. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  156. package/dist/composition/bridge-analysis.js +8 -0
  157. package/dist/composition/bridge-analysis.js.map +1 -1
  158. package/dist/composition/canonical-compare.d.ts +45 -0
  159. package/dist/composition/canonical-compare.d.ts.map +1 -1
  160. package/dist/composition/canonical-compare.js +84 -0
  161. package/dist/composition/canonical-compare.js.map +1 -1
  162. package/dist/composition/catalog-graph.d.ts +3 -3
  163. package/dist/composition/catalog-graph.js +3 -3
  164. package/dist/composition/edge.d.ts +6 -0
  165. package/dist/composition/edge.d.ts.map +1 -1
  166. package/dist/composition/edge.js.map +1 -1
  167. package/dist/composition/edges/applied-physicist.d.ts +68 -2
  168. package/dist/composition/edges/applied-physicist.d.ts.map +1 -1
  169. package/dist/composition/edges/applied-physicist.js +320 -5
  170. package/dist/composition/edges/applied-physicist.js.map +1 -1
  171. package/dist/composition/explain.d.ts +7 -0
  172. package/dist/composition/explain.d.ts.map +1 -1
  173. package/dist/composition/explain.js +81 -7
  174. package/dist/composition/explain.js.map +1 -1
  175. package/dist/composition/formula-shape.d.ts +22 -0
  176. package/dist/composition/formula-shape.d.ts.map +1 -0
  177. package/dist/composition/formula-shape.js +124 -0
  178. package/dist/composition/formula-shape.js.map +1 -0
  179. package/dist/composition/index.d.ts +2 -2
  180. package/dist/composition/index.d.ts.map +1 -1
  181. package/dist/composition/index.js +2 -2
  182. package/dist/composition/index.js.map +1 -1
  183. package/dist/composition/quantities/applied-physicist.d.ts +55 -1
  184. package/dist/composition/quantities/applied-physicist.d.ts.map +1 -1
  185. package/dist/composition/quantities/applied-physicist.js +159 -1
  186. package/dist/composition/quantities/applied-physicist.js.map +1 -1
  187. package/dist/composition/user-equation.d.ts.map +1 -1
  188. package/dist/composition/user-equation.js +25 -10
  189. package/dist/composition/user-equation.js.map +1 -1
  190. package/dist/dimensional/bridge-check.d.ts +1 -1
  191. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  192. package/dist/dimensional/bridge-check.js +9 -1
  193. package/dist/dimensional/bridge-check.js.map +1 -1
  194. package/dist/dimensional/buckingham.d.ts +7 -0
  195. package/dist/dimensional/buckingham.d.ts.map +1 -1
  196. package/dist/dimensional/buckingham.js +4 -0
  197. package/dist/dimensional/buckingham.js.map +1 -1
  198. package/dist/dimensional/dimension-spec.d.ts +11 -0
  199. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  200. package/dist/dimensional/dimension-spec.js +17 -9
  201. package/dist/dimensional/dimension-spec.js.map +1 -1
  202. package/dist/index.d.ts +3 -1
  203. package/dist/index.d.ts.map +1 -1
  204. package/dist/index.js +3 -1
  205. package/dist/index.js.map +1 -1
  206. package/dist/relations/domain-regimes.d.ts +12 -0
  207. package/dist/relations/domain-regimes.d.ts.map +1 -0
  208. package/dist/relations/domain-regimes.js +21 -0
  209. package/dist/relations/domain-regimes.js.map +1 -0
  210. package/dist/relations/regime-registration.d.ts +32 -0
  211. package/dist/relations/regime-registration.d.ts.map +1 -0
  212. package/dist/relations/regime-registration.js +27 -0
  213. package/dist/relations/regime-registration.js.map +1 -0
  214. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Composition edges for BE-66, BE-67, and BE-68.
2
+ * Composition edges for BE-66 through BE-76.
3
3
  *
4
4
  * Each edge's endpoints state the same scale and force, so `kind` is
5
5
  * `law`. The overlay `formalRef` is kind `bridge`, so each id is a
@@ -13,9 +13,17 @@
13
13
  import { evaluateRadiationPressure } from '../../bridges/be66-radiation-pressure.js';
14
14
  import { evaluateAlfvenSpeed } from '../../bridges/be67-alfven-speed.js';
15
15
  import { evaluateTolmanEhrenfest } from '../../bridges/be68-tolman-ehrenfest.js';
16
+ import { evaluateFastMagnetosonic } from '../../bridges/be69-fast-magnetosonic.js';
17
+ import { evaluateEinsteinRelation } from '../../bridges/be70-einstein-relation.js';
18
+ import { evaluateClapeyron } from '../../bridges/be71-clapeyron.js';
19
+ import { evaluateGravitationalRedshift } from '../../bridges/be72-gravitational-redshift.js';
20
+ import { evaluateKelvinPeltier } from '../../bridges/be73-kelvin-peltier.js';
21
+ import { evaluateMagneticPressure } from '../../bridges/be74-magnetic-pressure.js';
22
+ import { evaluateLondonPenetration } from '../../bridges/be75-london-penetration.js';
23
+ import { evaluatePlasmaBeta } from '../../bridges/be76-plasma-beta.js';
16
24
  import { DIMENSIONLESS } from '../../dimensional/types.js';
17
25
  import { CONSTANTS } from '../../dimensional/symbolic-constants.js';
18
- import { alfvenSpeedQ, incidenceAngleQ, magneticFluxDensityQ, metricG00Q, plasmaMassDensityQ, poyntingFluxQ, properTemperatureQ, radiationPressureQ, reflectanceQ, tolmanInvariantQ, } from '../quantities.js';
26
+ import { alfvenSpeedQ, incidenceAngleQ, magneticFluxDensityQ, metricG00Q, plasmaMassDensityQ, poyntingFluxQ, properTemperatureQ, radiationPressureQ, reflectanceQ, tolmanInvariantQ, soundSpeedQ, fastMagnetosonicSpeedQ, electricalMobilityQ, einsteinTemperatureQ, carrierChargeQ, diffusivityQ, latentHeatQ, clapeyronTemperatureQ, specificVolumeChangeQ, clapeyronSlopeQ, redshiftMetricG00OneQ, redshiftMetricG00TwoQ, gravitationalFrequencyRatioQ, seebeckCoefficientQ, peltierTemperatureQ, peltierCoefficientQ, magneticPressureQ, londonPenetrationDepthQ, plasmaBetaQ, carrierDensityQ, effectiveMassQ, temperatureQ, } from '../quantities.js';
19
27
  const finite = Number.isFinite;
20
28
  const qsym = (q) => ({ kind: 'symbol', name: q.name, dim: q.dim });
21
29
  const csym = (name) => ({ kind: 'symbol', name, dim: CONSTANTS[name].dim });
@@ -24,6 +32,8 @@ const prod = (...args) => ({ kind: 'op', op: '*', args });
24
32
  const plus = (a, b) => ({ kind: 'op', op: '+', args: [a, b] });
25
33
  const ratio = (num, den) => ({ kind: 'op', op: '/', args: [num, den] });
26
34
  const pow = (base, exp) => ({ kind: 'op', op: '^', args: [base, exp] });
35
+ /** μ0 = 1/(ε0 c²). The same product the Alfvén and magnetosonic formulas use. */
36
+ const mu0 = ratio(lit(1), prod(csym('epsilon_0'), pow(csym('c'), lit(2))));
27
37
  /** P_n = (I/c) (1+R) cos²θ. */
28
38
  const BE66_SYMBOLIC = prod(ratio(qsym(poyntingFluxQ), csym('c')), plus(lit(1), qsym(reflectanceQ)), pow({ kind: 'transcendental', fn: 'cos', arg: qsym(incidenceAngleQ) }, lit(2)));
29
39
  /** μ0 = 1/(ε0 c²). v_A = B / √(μ0 ρ). */
@@ -44,6 +54,11 @@ export const be66Edge = {
44
54
  kind: 'law',
45
55
  label: 'Radiation pressure P_n = (I/c) (1+R) cos²θ',
46
56
  sources: [poyntingFluxQ, reflectanceQ, incidenceAngleQ],
57
+ aliases: {
58
+ 'poynting-flux': ['I_W_per_m2', 'I'],
59
+ reflectance: ['R'],
60
+ 'incidence-angle': ['theta_rad', 'theta'],
61
+ },
47
62
  target: radiationPressureQ,
48
63
  confidence: 'established',
49
64
  domain: {
@@ -61,7 +76,7 @@ export const be66Edge = {
61
76
  theta_rad: i['incidence-angle'],
62
77
  }).P_Pa,
63
78
  symbolic: BE66_SYMBOLIC,
64
- citation: 'OpenStax University Physics Vol. 2 §16.5 (absorber I/c, reflector 2I/c). The (1+R) cos²θ factor is this catalog\'s assembly.',
79
+ citation: 'OpenStax University Physics Volume 2, https://openstax.org/books/university-physics-volume-2/pages/16-4-momentum-and-radiation-pressure (absorber I/c, reflector 2I/c). The (1+R) cos²θ factor is this catalog\'s assembly.',
65
80
  };
66
81
  /**
67
82
  * BE-67 Alfvén speed: (magnetic-flux-density, plasma-mass-density) →
@@ -77,6 +92,10 @@ export const be67Edge = {
77
92
  kind: 'law',
78
93
  label: 'Alfvén speed v_A = B / √(μ0 ρ)',
79
94
  sources: [magneticFluxDensityQ, plasmaMassDensityQ],
95
+ aliases: {
96
+ 'magnetic-flux-density': ['B_T'],
97
+ 'plasma-mass-density': ['rho_kg_per_m3'],
98
+ },
80
99
  target: alfvenSpeedQ,
81
100
  confidence: 'established',
82
101
  domain: {
@@ -107,6 +126,10 @@ export const be68Edge = {
107
126
  kind: 'law',
108
127
  label: 'Tolman–Ehrenfest invariant T √(−g_00)',
109
128
  sources: [properTemperatureQ, metricG00Q],
129
+ aliases: {
130
+ 'proper-temperature': ['T_K'],
131
+ 'metric-g00': ['g_00'],
132
+ },
110
133
  target: tolmanInvariantQ,
111
134
  confidence: 'established',
112
135
  domain: {
@@ -123,6 +146,298 @@ export const be68Edge = {
123
146
  symbolic: BE68_SYMBOLIC,
124
147
  citation: 'Tolman & Ehrenfest 1930 Phys. Rev. 36:1791 (T0 √g_44). Catalog form T √(−g_00).',
125
148
  };
126
- /** The three applied-physicist edges, in catalog-id order. @public */
127
- export const APPLIED_PHYSICIST_EDGES = [be66Edge, be67Edge, be68Edge];
149
+ /** |ω/k| = √(c_s² + B²/(μ0 ρ)), with μ0 = 1/(ε0 c²). */
150
+ const BE69_SYMBOLIC = pow(plus(pow(qsym(soundSpeedQ), lit(2)), ratio(pow(qsym(magneticFluxDensityQ), lit(2)), prod(ratio(lit(1), prod(csym('epsilon_0'), pow(csym('c'), lit(2)))), qsym(plasmaMassDensityQ)))), lit(0.5));
151
+ /** D = μ k_B T / q. */
152
+ const BE70_SYMBOLIC = ratio(prod(qsym(electricalMobilityQ), csym('k_B'), qsym(einsteinTemperatureQ)), qsym(carrierChargeQ));
153
+ /** dP/dT = L / (T Δv). */
154
+ const BE71_SYMBOLIC = ratio(qsym(latentHeatQ), prod(qsym(clapeyronTemperatureQ), qsym(specificVolumeChangeQ)));
155
+ /** ν1/ν2 = √(g2/g1). Both components are negative, so the ratio is positive. */
156
+ const BE72_SYMBOLIC = pow(ratio(qsym(redshiftMetricG00TwoQ), qsym(redshiftMetricG00OneQ)), lit(0.5));
157
+ /** Π = S T. Onsager reciprocity is not a leaf. */
158
+ const BE73_SYMBOLIC = prod(qsym(seebeckCoefficientQ), qsym(peltierTemperatureQ));
159
+ /**
160
+ * BE-69 fast magnetosonic speed:
161
+ * (sound-speed, magnetic-flux-density, plasma-mass-density) →
162
+ * fast-magnetosonic-speed. `c_s = 0` recovers the Alfvén number and
163
+ * does not identify this target with `alfven-speed`.
164
+ *
165
+ * @public
166
+ */
167
+ export const be69Edge = {
168
+ id: 'be-69',
169
+ beId: 69,
170
+ kind: 'law',
171
+ label: 'Fast magnetosonic speed |ω/k| = √(c_s² + B²/(μ0 ρ))',
172
+ sources: [soundSpeedQ, magneticFluxDensityQ, plasmaMassDensityQ],
173
+ aliases: {
174
+ 'sound-speed': ['cs_m_per_s', 'c_s'],
175
+ 'magnetic-flux-density': ['B_T'],
176
+ 'plasma-mass-density': ['rho_kg_per_m3'],
177
+ },
178
+ target: fastMagnetosonicSpeedQ,
179
+ confidence: 'established',
180
+ domain: {
181
+ description: 'c_s ≥ 0, B finite, ρ > 0',
182
+ predicate: (i) => finite(i['sound-speed']) &&
183
+ i['sound-speed'] >= 0 &&
184
+ finite(i['magnetic-flux-density']) &&
185
+ finite(i['plasma-mass-density']) &&
186
+ i['plasma-mass-density'] > 0,
187
+ },
188
+ evaluate: (i) => evaluateFastMagnetosonic({
189
+ cs_m_per_s: i['sound-speed'],
190
+ B_T: i['magnetic-flux-density'],
191
+ rho_kg_per_m3: i['plasma-mass-density'],
192
+ }).v_m_per_s,
193
+ symbolic: BE69_SYMBOLIC,
194
+ citation: 'PhysJS.FastMagnetosonic.speed_eq. Perpendicular compressional phase speed. c_s = 0 is the Alfvén number of a different polarization.',
195
+ };
196
+ /**
197
+ * BE-70 Einstein relation: (electrical-mobility, einstein-temperature,
198
+ * carrier-charge) → diffusivity, `D = μ k_B T / q`.
199
+ *
200
+ * @public
201
+ */
202
+ export const be70Edge = {
203
+ id: 'be-70',
204
+ beId: 70,
205
+ kind: 'law',
206
+ label: 'Einstein relation D = μ k_B T / q',
207
+ sources: [electricalMobilityQ, einsteinTemperatureQ, carrierChargeQ],
208
+ aliases: {
209
+ 'electrical-mobility': ['mu_m2_per_Vs'],
210
+ 'einstein-temperature': ['T_K'],
211
+ 'carrier-charge': ['q_C'],
212
+ },
213
+ target: diffusivityQ,
214
+ confidence: 'established',
215
+ domain: {
216
+ description: 'μ finite, T ≠ 0, q ≠ 0',
217
+ predicate: (i) => finite(i['electrical-mobility']) &&
218
+ finite(i['einstein-temperature']) &&
219
+ i['einstein-temperature'] !== 0 &&
220
+ finite(i['carrier-charge']) &&
221
+ i['carrier-charge'] !== 0,
222
+ },
223
+ evaluate: (i) => evaluateEinsteinRelation({
224
+ mu_m2_per_Vs: i['electrical-mobility'],
225
+ T_K: i['einstein-temperature'],
226
+ q_C: i['carrier-charge'],
227
+ }).D_m2_per_s,
228
+ symbolic: BE70_SYMBOLIC,
229
+ citation: 'PhysJS.EinsteinRelation.diffusion_eq. Drift cancels diffusion on a Boltzmann profile.',
230
+ };
231
+ /**
232
+ * BE-71 Clapeyron slope: (specific-latent-heat, clapeyron-temperature,
233
+ * specific-volume-change) → clapeyron-slope, `dP/dT = L/(T Δv)`.
234
+ *
235
+ * @public
236
+ */
237
+ export const be71Edge = {
238
+ id: 'be-71',
239
+ beId: 71,
240
+ kind: 'law',
241
+ label: 'Clapeyron slope dP/dT = L/(T Δv)',
242
+ sources: [latentHeatQ, clapeyronTemperatureQ, specificVolumeChangeQ],
243
+ aliases: {
244
+ 'specific-latent-heat': ['L_J_per_kg'],
245
+ 'clapeyron-temperature': ['T_K'],
246
+ 'specific-volume-change': ['delta_v_m3_per_kg'],
247
+ },
248
+ target: clapeyronSlopeQ,
249
+ confidence: 'established',
250
+ domain: {
251
+ description: 'L finite, T ≠ 0, Δv ≠ 0',
252
+ predicate: (i) => finite(i['specific-latent-heat']) &&
253
+ finite(i['clapeyron-temperature']) &&
254
+ i['clapeyron-temperature'] !== 0 &&
255
+ finite(i['specific-volume-change']) &&
256
+ i['specific-volume-change'] !== 0,
257
+ },
258
+ evaluate: (i) => evaluateClapeyron({
259
+ L_J_per_kg: i['specific-latent-heat'],
260
+ T_K: i['clapeyron-temperature'],
261
+ delta_v_m3_per_kg: i['specific-volume-change'],
262
+ }).slope_Pa_per_K,
263
+ symbolic: BE71_SYMBOLIC,
264
+ citation: 'PhysJS.Clapeyron.slope_eq. L = T (s2−s1) is already substituted. The entropy slope is not a second edge.',
265
+ };
266
+ /**
267
+ * BE-72 gravitational redshift: (redshift-metric-g00-1,
268
+ * redshift-metric-g00-2) → gravitational-frequency-ratio,
269
+ * `ν1/ν2 = √(g2/g1)`. The quantities are not BE-68's, so this edge
270
+ * does not compose into the Tolman invariant.
271
+ *
272
+ * @public
273
+ */
274
+ export const be72Edge = {
275
+ id: 'be-72',
276
+ beId: 72,
277
+ kind: 'law',
278
+ label: 'Gravitational redshift ν1/ν2 = √(g2/g1)',
279
+ sources: [redshiftMetricG00OneQ, redshiftMetricG00TwoQ],
280
+ aliases: {
281
+ 'redshift-metric-g00-1': ['g1'],
282
+ 'redshift-metric-g00-2': ['g2'],
283
+ },
284
+ target: gravitationalFrequencyRatioQ,
285
+ confidence: 'established',
286
+ domain: {
287
+ description: 'both static g_00 components are finite and negative',
288
+ predicate: (i) => finite(i['redshift-metric-g00-1']) &&
289
+ i['redshift-metric-g00-1'] < 0 &&
290
+ finite(i['redshift-metric-g00-2']) &&
291
+ i['redshift-metric-g00-2'] < 0,
292
+ },
293
+ evaluate: (i) => evaluateGravitationalRedshift({
294
+ g1: i['redshift-metric-g00-1'],
295
+ g2: i['redshift-metric-g00-2'],
296
+ }).frequency_ratio,
297
+ symbolic: BE72_SYMBOLIC,
298
+ citation: 'PhysJS.GravitationalRedshift.frequency_ratio. Not PhysJS.TolmanEhrenfest.hydrostatic_constant. tolman_same_ratio is nested and is not this edge.',
299
+ };
300
+ /**
301
+ * BE-73 Kelvin relation: (seebeck-coefficient, peltier-temperature) →
302
+ * peltier-coefficient, `Π = S T`. Onsager reciprocity is the structure
303
+ * field in the theorem, not a source.
304
+ *
305
+ * @public
306
+ */
307
+ export const be73Edge = {
308
+ id: 'be-73',
309
+ beId: 73,
310
+ kind: 'law',
311
+ label: 'Kelvin relation Π = S T',
312
+ sources: [seebeckCoefficientQ, peltierTemperatureQ],
313
+ aliases: {
314
+ 'seebeck-coefficient': ['S_V_per_K'],
315
+ 'peltier-temperature': ['T_K'],
316
+ },
317
+ target: peltierCoefficientQ,
318
+ confidence: 'established',
319
+ domain: {
320
+ description: 'S finite and T ≠ 0',
321
+ predicate: (i) => finite(i['seebeck-coefficient']) && finite(i['peltier-temperature']) && i['peltier-temperature'] !== 0,
322
+ },
323
+ evaluate: (i) => evaluateKelvinPeltier({
324
+ S_V_per_K: i['seebeck-coefficient'],
325
+ T_K: i['peltier-temperature'],
326
+ }).Pi_V,
327
+ symbolic: BE73_SYMBOLIC,
328
+ citation: 'PhysJS.KelvinRelation.peltier_eq. L12 = L21 is ThermoelectricOnsager.onsager, a structure field, not an axiom and not an input.',
329
+ };
330
+ /** p_B = B² / (2 μ0). The 2 is the inductor integral, not a Buckingham constant. */
331
+ const BE74_SYMBOLIC = ratio(pow(qsym(magneticFluxDensityQ), lit(2)), prod(lit(2), mu0));
332
+ /** λ_L = √(m / (μ0 n e²)). `e` is the elementary charge. */
333
+ const BE75_SYMBOLIC = pow(ratio(qsym(effectiveMassQ), prod(mu0, qsym(carrierDensityQ), pow(csym('e'), lit(2)))), lit(0.5));
334
+ /** β = n k_B T / p_B. Substituting BE-74 yields 2 μ0 n k_B T / B². */
335
+ const BE76_SYMBOLIC = ratio(prod(qsym(carrierDensityQ), csym('k_B'), qsym(temperatureQ)), qsym(magneticPressureQ));
336
+ /**
337
+ * BE-74 magnetic pressure: magnetic-flux-density → magnetic-pressure,
338
+ * `p_B = B²/(2 μ0)`. `μ0` is a constant. The endpoints share the
339
+ * classical electromagnetic attributes: a law.
340
+ *
341
+ * @public
342
+ */
343
+ export const be74Edge = {
344
+ id: 'be-74',
345
+ beId: 74,
346
+ kind: 'law',
347
+ label: 'Magnetic pressure p_B = B²/(2 μ0)',
348
+ sources: [magneticFluxDensityQ],
349
+ aliases: {
350
+ 'magnetic-flux-density': ['B_T', 'B'],
351
+ },
352
+ target: magneticPressureQ,
353
+ confidence: 'established',
354
+ domain: {
355
+ description: 'B finite; the factor 2 is the stored-energy half, not C = 1',
356
+ predicate: (i) => finite(i['magnetic-flux-density']),
357
+ },
358
+ evaluate: (i) => evaluateMagneticPressure({ B_T: i['magnetic-flux-density'] }).p_Pa,
359
+ symbolic: BE74_SYMBOLIC,
360
+ citation: 'PhysJS.MagneticPressure.pressure_eq. U = (L/2) I². C = 1 is the battery work per volume, not this pressure.',
361
+ };
362
+ /**
363
+ * BE-75 London penetration depth: (effective-mass, carrier-density) →
364
+ * london-penetration-depth, `λ_L = √(m/(μ0 n e²))`. `e` and `μ0` are
365
+ * constants. The endpoints share the carrier attributes: a law.
366
+ *
367
+ * @public
368
+ */
369
+ export const be75Edge = {
370
+ id: 'be-75',
371
+ beId: 75,
372
+ kind: 'law',
373
+ label: 'London penetration depth λ_L = √(m/(μ0 n e²))',
374
+ sources: [effectiveMassQ, carrierDensityQ],
375
+ aliases: {
376
+ 'effective-mass': ['m_kg', 'm'],
377
+ 'carrier-density': ['n_per_m3', 'n'],
378
+ },
379
+ target: londonPenetrationDepthQ,
380
+ confidence: 'established',
381
+ domain: {
382
+ description: 'm > 0 and n > 0; e is the elementary charge',
383
+ predicate: (i) => finite(i['effective-mass']) && i['effective-mass'] > 0 && finite(i['carrier-density']) && i['carrier-density'] > 0,
384
+ },
385
+ evaluate: (i) => evaluateLondonPenetration({
386
+ m_kg: i['effective-mass'],
387
+ n_per_m3: i['carrier-density'],
388
+ }).lambda_m,
389
+ symbolic: BE75_SYMBOLIC,
390
+ citation: 'PhysJS.LondonPenetration.depth_eq. Units also admit μ0 e²/m. Not the classical skin depth.',
391
+ };
392
+ /**
393
+ * BE-76 plasma beta: (carrier-density, temperature, magnetic-pressure) →
394
+ * plasma-beta, `β = n k_B T / p_B`. The magnetic-pressure source is
395
+ * BE-74, so the edges compose. `carrier-density` is quantum and
396
+ * `magnetic-pressure` is classical, so the endpoints differ: a bridge.
397
+ * Not a plasma-β inequality.
398
+ *
399
+ * @public
400
+ */
401
+ export const be76Edge = {
402
+ id: 'be-76',
403
+ beId: 76,
404
+ kind: 'bridge',
405
+ label: 'Plasma beta β = n k_B T / p_B',
406
+ sources: [carrierDensityQ, temperatureQ, magneticPressureQ],
407
+ aliases: {
408
+ 'carrier-density': ['n_per_m3', 'n'],
409
+ temperature: ['T_K', 'T'],
410
+ 'magnetic-pressure': ['p_B_Pa', 'p_B'],
411
+ },
412
+ target: plasmaBetaQ,
413
+ confidence: 'established',
414
+ domain: {
415
+ description: 'n and T finite, p_B ≠ 0; p_B is B²/(2 μ0)',
416
+ predicate: (i) => finite(i['carrier-density']) &&
417
+ finite(i['temperature']) &&
418
+ finite(i['magnetic-pressure']) &&
419
+ i['magnetic-pressure'] !== 0,
420
+ },
421
+ evaluate: (i) => evaluatePlasmaBeta({
422
+ n_per_m3: i['carrier-density'],
423
+ T_K: i['temperature'],
424
+ p_B_Pa: i['magnetic-pressure'],
425
+ }).beta,
426
+ symbolic: BE76_SYMBOLIC,
427
+ citation: 'PhysJS.PlasmaBeta.beta_eq. p_B is PhysJS.MagneticPressure.pressure_eq. Using B²/μ0 is half of this beta. Not a plasma-β inequality.',
428
+ };
429
+ /** The applied-physicist edges, in catalog-id order. @public */
430
+ export const APPLIED_PHYSICIST_EDGES = [
431
+ be66Edge,
432
+ be67Edge,
433
+ be68Edge,
434
+ be69Edge,
435
+ be70Edge,
436
+ be71Edge,
437
+ be72Edge,
438
+ be73Edge,
439
+ be74Edge,
440
+ be75Edge,
441
+ be76Edge,
442
+ ];
128
443
  //# sourceMappingURL=applied-physicist.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"applied-physicist.js","sourceRoot":"","sources":["../../../src/composition/edges/applied-physicist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"applied-physicist.js","sourceRoot":"","sources":["../../../src/composition/edges/applied-physicist.ts"],"names":[],"mappings":"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"}
@@ -28,6 +28,13 @@ import type { QuantityIdentification } from './compose.js';
28
28
  import type { IdentifiabilityResult } from './identifiability.js';
29
29
  import type { RetrodictionResult } from './retrodiction.js';
30
30
  import type { Dimension } from '../dimensional/types.js';
31
+ /**
32
+ * Text form of a recovered quantity: 15 significant digits, the precision an
33
+ * evaluator input is already passed at. JSON keeps the number; this is only
34
+ * the printed form. An integer stays an integer (`1`, not `1.0000e+0`).
35
+ * @internal
36
+ */
37
+ export declare function formatQuantity(value: number): string;
31
38
  import type { DimensionalDeterminationResult } from '../dimensional/buckingham.js';
32
39
  /** One structural derivation of the target, with the recovered value when
33
40
  * ground-truth values were supplied. @public */
@@ -1 +1 @@
1
- {"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../../src/composition/explain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAGnF;iDACiD;AACjD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACpD,4EAA4E;QAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC7D,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CAChE;AAED,uDAAuD;AACvD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,mEAAmE;IACnE,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvD,wEAAwE;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAC1C,2EAA2E;IAC3E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;8DAC0D;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,8BAA8B,CAAC;IACtD,0EAA0E;IAC1E,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AAsJD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3D,IAAI,GAAE,cAAmB,GACxB,mBAAmB,CAqHrB"}
1
+ {"version":3,"file":"explain.d.ts","sourceRoot":"","sources":["../../src/composition/explain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEzD;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEpD;AACD,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AAInF;iDACiD;AACjD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB;;;;OAIG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,yDAAyD;IACzD,QAAQ,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,CAAC;IACpC;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE;QACzB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACpD,4EAA4E;QAC5E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,mDAAmD;AACnD,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,eAAe,CAAC,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAC7D,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;CAChE;AAED,uDAAuD;AACvD,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,mEAAmE;IACnE,QAAQ,CAAC,eAAe,EAAE,qBAAqB,CAAC;IAChD,iEAAiE;IACjE,QAAQ,CAAC,WAAW,EAAE,SAAS,qBAAqB,EAAE,CAAC;IACvD,wEAAwE;IACxE,QAAQ,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAC1C,2EAA2E;IAC3E,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC;8DAC0D;IAC1D,QAAQ,CAAC,WAAW,CAAC,EAAE,8BAA8B,CAAC;IACtD,0EAA0E;IAC1E,QAAQ,CAAC,gBAAgB,EAAE,SAAS,MAAM,EAAE,CAAC;IAC7C,6CAA6C;IAC7C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC1B;AA0MD;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,SAAS,UAAU,EAAE,EAC5B,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC3D,IAAI,GAAE,cAAmB,GACxB,mBAAmB,CAsIrB"}
@@ -26,7 +26,60 @@
26
26
  import { QUANTITY_IDENTIFICATIONS } from './compose.js';
27
27
  import { classifyIdentifiability, forwardClosure } from './identifiability.js';
28
28
  import { retrodictNode } from './retrodiction.js';
29
+ /**
30
+ * Text form of a recovered quantity: 15 significant digits, the precision an
31
+ * evaluator input is already passed at. JSON keeps the number; this is only
32
+ * the printed form. An integer stays an integer (`1`, not `1.0000e+0`).
33
+ * @internal
34
+ */
35
+ export function formatQuantity(value) {
36
+ return String(Number(value.toPrecision(15)));
37
+ }
29
38
  import { dimensionallyDetermines } from '../dimensional/buckingham.js';
39
+ import { formulaShape } from './formula-shape.js';
40
+ /**
41
+ * A Buckingham monomial is the encoded formula only when scaling each known
42
+ * input scales the recovered value by that exponent. A monomial such as
43
+ * `n^(-1/3)` or `∝ 1` can share the target's dimension and still not be the
44
+ * formula, because the formula carries constants the monomial did not use.
45
+ * Samples that the domain refuses leave the monomial in place: this check
46
+ * does not invent a second domain.
47
+ */
48
+ function encodedMatchesMonomial(edges, target, knownNames, monomial, identifications) {
49
+ if (knownNames.length === 0)
50
+ return true;
51
+ const base = {};
52
+ knownNames.forEach((name, i) => {
53
+ base[name] = 1.7 + 0.3 * i;
54
+ });
55
+ const read = (values) => {
56
+ const retro = retrodictNode(edges, values, target, { identifications });
57
+ const hit = retro.predictions.find((prediction) => Number.isFinite(prediction.value) && prediction.value !== 0);
58
+ return hit?.value;
59
+ };
60
+ const origin = read(base);
61
+ if (origin === undefined)
62
+ return true;
63
+ for (const name of knownNames) {
64
+ const current = base[name];
65
+ if (current === undefined)
66
+ return true;
67
+ const next = read({ ...base, [name]: current * 4 });
68
+ if (next === undefined)
69
+ return true;
70
+ const exponent = monomial[name] ?? 0;
71
+ // A known name the evaluator does not read (G declared beside a law that
72
+ // already bakes G in) does not move the value. That is not a mismatch.
73
+ const unchanged = Math.abs(next - origin) / Math.max(Math.abs(origin), 1e-300) < 1e-9;
74
+ if (unchanged && Math.abs(exponent) > 1e-9)
75
+ continue;
76
+ const expected = origin * Math.pow(4, exponent);
77
+ const scale = Math.max(Math.abs(expected), Math.abs(next), 1e-300);
78
+ if (Math.abs(next - expected) / scale > 1e-6)
79
+ return false;
80
+ }
81
+ return true;
82
+ }
30
83
  function buildDimMap(edges, extra) {
31
84
  const m = new Map();
32
85
  for (const e of edges) {
@@ -89,7 +142,7 @@ function formatMonomial(m) {
89
142
  .map(([n, e]) => (e === 1 ? n : `${n}^${e}`));
90
143
  return parts.join('·') || '1';
91
144
  }
92
- function buildSummary(target, id, derivations, consistency, recoveredValue, dimensional, knownNames) {
145
+ function buildSummary(target, id, derivations, consistency, recoveredValue, dimensional, knownNames, formulaIsSum, encodedMatchesMonomial) {
93
146
  const known = knownNames.length
94
147
  ? `{${knownNames.join(', ')}}`
95
148
  : '{} (no inputs)';
@@ -116,7 +169,7 @@ function buildSummary(target, id, derivations, consistency, recoveredValue, dime
116
169
  case 'exactly-determined':
117
170
  s = `'${target}' is determined from ${known} via ${derivations[0]?.edge} (${derivations[0]?.label}).`;
118
171
  if (recoveredValue !== undefined) {
119
- s += ` Recovered value: ${recoveredValue.toExponential(4)}.`;
172
+ s += ` Recovered value: ${formatQuantity(recoveredValue)}.`;
120
173
  }
121
174
  break;
122
175
  case 'over-determined':
@@ -154,17 +207,26 @@ function buildSummary(target, id, derivations, consistency, recoveredValue, dime
154
207
  s += ` The ${id.surplusConstraints} surplus derivation(s) are falsifiable consistency constraints (supply values to check them).`;
155
208
  }
156
209
  if (recoveredValue !== undefined) {
157
- s += ` Recovered value: ${recoveredValue.toExponential(4)}.`;
210
+ s += ` Recovered value: ${formatQuantity(recoveredValue)}.`;
158
211
  }
159
212
  break;
160
213
  }
161
214
  }
162
- if (dimensional?.determined && dimensional.monomial) {
215
+ if (dimensional?.determined && dimensional.monomial && formulaIsSum) {
216
+ s += ` The encoded formula adds dimensionful terms, so it is not a proportionality.`;
217
+ }
218
+ else if (dimensional?.determined && dimensional.monomial && !encodedMatchesMonomial) {
219
+ s += ` Dimensionally, those inputs alone do not fix it — the encoded formula carries dimensionful constants.`;
220
+ }
221
+ else if (dimensional?.determined && dimensional.monomial) {
163
222
  s += ` Dimensionally, ${known} fix it up to a dimensionless constant: ${target} ∝ ${formatMonomial(dimensional.monomial)}.`;
164
223
  }
165
- else if (dimensional && !dimensional.determined && knownNames.length) {
224
+ else if (dimensional?.outsideGoverningSpan && knownNames.length) {
166
225
  s += ` Dimensionally, those inputs alone do not fix it — the encoded formula carries dimensionful constants.`;
167
226
  }
227
+ else if (dimensional && !dimensional.determined && knownNames.length) {
228
+ s += ` Dimensionally, those inputs alone do not fix a unique monomial.`;
229
+ }
168
230
  return s;
169
231
  }
170
232
  /**
@@ -228,7 +290,12 @@ export function explainQuantity(edges, target, known, opts = {}) {
228
290
  .filter((n) => n !== target && dimMap.has(n))
229
291
  .map((n) => ({ name: n, dim: dimMap.get(n) }));
230
292
  const det = dimensionallyDetermines({ name: target, dim: targetDimForChain }, governing);
231
- if (det.determined && det.monomial) {
293
+ const symbolic = e?.symbolic;
294
+ const sum = symbolic !== undefined && formulaShape(symbolic) === 'dimensional-sum';
295
+ const leaves = leafInputs.filter((name) => name !== target);
296
+ const agrees = det.monomial !== undefined &&
297
+ encodedMatchesMonomial(edges, target, leaves, det.monomial, identifications);
298
+ if (!sum && det.determined && det.monomial && agrees) {
232
299
  dimensionalForm = {
233
300
  monomial: det.monomial,
234
301
  formula: `${target} ∝ ${formatMonomial(det.monomial)}`,
@@ -254,7 +321,14 @@ export function explainQuantity(edges, target, known, opts = {}) {
254
321
  .map((n) => ({ name: n, dim: dimMap.get(n) }));
255
322
  dimensional = dimensionallyDetermines({ name: target, dim: targetDim }, governing);
256
323
  }
257
- const summary = buildSummary(target, identifiability, derivations, consistency, recoveredValue, dimensional, knownNames);
324
+ const formulaIsSum = identifiability.derivations.some((eid) => {
325
+ const symbolic = byId.get(eid)?.symbolic;
326
+ return symbolic !== undefined && formulaShape(symbolic) === 'dimensional-sum';
327
+ });
328
+ const encodedAgrees = dimensional?.determined === true && dimensional.monomial !== undefined
329
+ ? encodedMatchesMonomial(edges, target, knownNames, dimensional.monomial, identifications)
330
+ : true;
331
+ const summary = buildSummary(target, identifiability, derivations, consistency, recoveredValue, dimensional, knownNames, formulaIsSum, encodedAgrees);
258
332
  return {
259
333
  target,
260
334
  known: knownNames,
@@ -1 +1 @@
1
- {"version":3,"file":"explain.js","sourceRoot":"","sources":["../../src/composition/explain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"explain.js","sourceRoot":"","sources":["../../src/composition/explain.ts"],"names":[],"mappings":"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"}