universal-physics-tensor 0.45.2 → 0.46.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 (473) hide show
  1. package/README.md +28 -27
  2. package/dist/atlas/applicability.d.ts +108 -0
  3. package/dist/atlas/applicability.d.ts.map +1 -0
  4. package/dist/atlas/applicability.js +301 -0
  5. package/dist/atlas/applicability.js.map +1 -0
  6. package/dist/atlas/association.d.ts +92 -0
  7. package/dist/atlas/association.d.ts.map +1 -0
  8. package/dist/atlas/association.js +112 -0
  9. package/dist/atlas/association.js.map +1 -0
  10. package/dist/atlas/benchmark/backend-shapes.d.ts +47 -0
  11. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -0
  12. package/dist/atlas/benchmark/backend-shapes.js +58 -0
  13. package/dist/atlas/benchmark/backend-shapes.js.map +1 -0
  14. package/dist/atlas/benchmark/baselines.d.ts +64 -0
  15. package/dist/atlas/benchmark/baselines.d.ts.map +1 -0
  16. package/dist/atlas/benchmark/baselines.js +112 -0
  17. package/dist/atlas/benchmark/baselines.js.map +1 -0
  18. package/dist/atlas/benchmark/leakage.d.ts +56 -0
  19. package/dist/atlas/benchmark/leakage.d.ts.map +1 -0
  20. package/dist/atlas/benchmark/leakage.js +100 -0
  21. package/dist/atlas/benchmark/leakage.js.map +1 -0
  22. package/dist/atlas/benchmark/loader.d.ts +56 -0
  23. package/dist/atlas/benchmark/loader.d.ts.map +1 -0
  24. package/dist/atlas/benchmark/loader.js +104 -0
  25. package/dist/atlas/benchmark/loader.js.map +1 -0
  26. package/dist/atlas/benchmark/run-atlas.d.ts +72 -0
  27. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -0
  28. package/dist/atlas/benchmark/run-atlas.js +210 -0
  29. package/dist/atlas/benchmark/run-atlas.js.map +1 -0
  30. package/dist/atlas/benchmark/stats.d.ts +90 -0
  31. package/dist/atlas/benchmark/stats.d.ts.map +1 -0
  32. package/dist/atlas/benchmark/stats.js +159 -0
  33. package/dist/atlas/benchmark/stats.js.map +1 -0
  34. package/dist/atlas/benchmark/study.d.ts +120 -0
  35. package/dist/atlas/benchmark/study.d.ts.map +1 -0
  36. package/dist/atlas/benchmark/study.js +192 -0
  37. package/dist/atlas/benchmark/study.js.map +1 -0
  38. package/dist/atlas/benchmark/types.d.ts +79 -0
  39. package/dist/atlas/benchmark/types.d.ts.map +1 -0
  40. package/dist/atlas/benchmark/types.js +46 -0
  41. package/dist/atlas/benchmark/types.js.map +1 -0
  42. package/dist/atlas/composition-table.d.ts +55 -0
  43. package/dist/atlas/composition-table.d.ts.map +1 -0
  44. package/dist/atlas/composition-table.js +133 -0
  45. package/dist/atlas/composition-table.js.map +1 -0
  46. package/dist/atlas/conventions.d.ts +63 -0
  47. package/dist/atlas/conventions.d.ts.map +1 -0
  48. package/dist/atlas/conventions.js +93 -0
  49. package/dist/atlas/conventions.js.map +1 -0
  50. package/dist/atlas/coverage.d.ts +93 -0
  51. package/dist/atlas/coverage.d.ts.map +1 -0
  52. package/dist/atlas/coverage.js +69 -0
  53. package/dist/atlas/coverage.js.map +1 -0
  54. package/dist/atlas/derivation.d.ts +137 -0
  55. package/dist/atlas/derivation.d.ts.map +1 -0
  56. package/dist/atlas/derivation.js +190 -0
  57. package/dist/atlas/derivation.js.map +1 -0
  58. package/dist/atlas/derive-evidence.d.ts +218 -0
  59. package/dist/atlas/derive-evidence.d.ts.map +1 -0
  60. package/dist/atlas/derive-evidence.js +225 -0
  61. package/dist/atlas/derive-evidence.js.map +1 -0
  62. package/dist/atlas/diffusion/bridges-closure.d.ts +63 -0
  63. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -0
  64. package/dist/atlas/diffusion/bridges-closure.js +324 -0
  65. package/dist/atlas/diffusion/bridges-closure.js.map +1 -0
  66. package/dist/atlas/diffusion/bridges.d.ts +36 -0
  67. package/dist/atlas/diffusion/bridges.d.ts.map +1 -0
  68. package/dist/atlas/diffusion/bridges.js +226 -0
  69. package/dist/atlas/diffusion/bridges.js.map +1 -0
  70. package/dist/atlas/diffusion/dimensions.d.ts +21 -0
  71. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -0
  72. package/dist/atlas/diffusion/dimensions.js +21 -0
  73. package/dist/atlas/diffusion/dimensions.js.map +1 -0
  74. package/dist/atlas/diffusion/index.d.ts +16 -0
  75. package/dist/atlas/diffusion/index.d.ts.map +1 -0
  76. package/dist/atlas/diffusion/index.js +23 -0
  77. package/dist/atlas/diffusion/index.js.map +1 -0
  78. package/dist/atlas/diffusion/models.d.ts +24 -0
  79. package/dist/atlas/diffusion/models.d.ts.map +1 -0
  80. package/dist/atlas/diffusion/models.js +139 -0
  81. package/dist/atlas/diffusion/models.js.map +1 -0
  82. package/dist/atlas/diffusion/numerics.d.ts +181 -0
  83. package/dist/atlas/diffusion/numerics.d.ts.map +1 -0
  84. package/dist/atlas/diffusion/numerics.js +251 -0
  85. package/dist/atlas/diffusion/numerics.js.map +1 -0
  86. package/dist/atlas/error-algebra.d.ts +52 -0
  87. package/dist/atlas/error-algebra.d.ts.map +1 -0
  88. package/dist/atlas/error-algebra.js +55 -0
  89. package/dist/atlas/error-algebra.js.map +1 -0
  90. package/dist/atlas/export.d.ts +48 -0
  91. package/dist/atlas/export.d.ts.map +1 -0
  92. package/dist/atlas/export.js +106 -0
  93. package/dist/atlas/export.js.map +1 -0
  94. package/dist/atlas/families.d.ts +14 -0
  95. package/dist/atlas/families.d.ts.map +1 -0
  96. package/dist/atlas/families.js +20 -0
  97. package/dist/atlas/families.js.map +1 -0
  98. package/dist/atlas/index.d.ts +90 -0
  99. package/dist/atlas/index.d.ts.map +1 -0
  100. package/dist/atlas/index.js +69 -0
  101. package/dist/atlas/index.js.map +1 -0
  102. package/dist/atlas/link-prediction.d.ts +71 -0
  103. package/dist/atlas/link-prediction.d.ts.map +1 -0
  104. package/dist/atlas/link-prediction.js +128 -0
  105. package/dist/atlas/link-prediction.js.map +1 -0
  106. package/dist/atlas/model.d.ts +70 -0
  107. package/dist/atlas/model.d.ts.map +1 -0
  108. package/dist/atlas/model.js +26 -0
  109. package/dist/atlas/model.js.map +1 -0
  110. package/dist/atlas/oscillators/bridges-coarse.d.ts +71 -0
  111. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -0
  112. package/dist/atlas/oscillators/bridges-coarse.js +146 -0
  113. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -0
  114. package/dist/atlas/oscillators/bridges-exact.d.ts +70 -0
  115. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -0
  116. package/dist/atlas/oscillators/bridges-exact.js +227 -0
  117. package/dist/atlas/oscillators/bridges-exact.js.map +1 -0
  118. package/dist/atlas/oscillators/bridges-limits.d.ts +118 -0
  119. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -0
  120. package/dist/atlas/oscillators/bridges-limits.js +342 -0
  121. package/dist/atlas/oscillators/bridges-limits.js.map +1 -0
  122. package/dist/atlas/oscillators/dimensions.d.ts +34 -0
  123. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -0
  124. package/dist/atlas/oscillators/dimensions.js +34 -0
  125. package/dist/atlas/oscillators/dimensions.js.map +1 -0
  126. package/dist/atlas/oscillators/index.d.ts +38 -0
  127. package/dist/atlas/oscillators/index.d.ts.map +1 -0
  128. package/dist/atlas/oscillators/index.js +37 -0
  129. package/dist/atlas/oscillators/index.js.map +1 -0
  130. package/dist/atlas/oscillators/models.d.ts +25 -0
  131. package/dist/atlas/oscillators/models.d.ts.map +1 -0
  132. package/dist/atlas/oscillators/models.js +160 -0
  133. package/dist/atlas/oscillators/models.js.map +1 -0
  134. package/dist/atlas/oscillators/rejections.d.ts +21 -0
  135. package/dist/atlas/oscillators/rejections.d.ts.map +1 -0
  136. package/dist/atlas/oscillators/rejections.js +54 -0
  137. package/dist/atlas/oscillators/rejections.js.map +1 -0
  138. package/dist/atlas/path-bound.d.ts +143 -0
  139. package/dist/atlas/path-bound.d.ts.map +1 -0
  140. package/dist/atlas/path-bound.js +268 -0
  141. package/dist/atlas/path-bound.js.map +1 -0
  142. package/dist/atlas/poster/associations.d.ts +66 -0
  143. package/dist/atlas/poster/associations.d.ts.map +1 -0
  144. package/dist/atlas/poster/associations.js +90 -0
  145. package/dist/atlas/poster/associations.js.map +1 -0
  146. package/dist/atlas/poster/derivations.d.ts +156 -0
  147. package/dist/atlas/poster/derivations.d.ts.map +1 -0
  148. package/dist/atlas/poster/derivations.js +430 -0
  149. package/dist/atlas/poster/derivations.js.map +1 -0
  150. package/dist/atlas/poster/statements.d.ts +198 -0
  151. package/dist/atlas/poster/statements.d.ts.map +1 -0
  152. package/dist/atlas/poster/statements.js +365 -0
  153. package/dist/atlas/poster/statements.js.map +1 -0
  154. package/dist/atlas/public.d.ts +26 -0
  155. package/dist/atlas/public.d.ts.map +1 -0
  156. package/dist/atlas/public.js +21 -0
  157. package/dist/atlas/public.js.map +1 -0
  158. package/dist/atlas/regime.d.ts +171 -0
  159. package/dist/atlas/regime.d.ts.map +1 -0
  160. package/dist/atlas/regime.js +309 -0
  161. package/dist/atlas/regime.js.map +1 -0
  162. package/dist/atlas/serialize.d.ts +50 -0
  163. package/dist/atlas/serialize.d.ts.map +1 -0
  164. package/dist/atlas/serialize.js +180 -0
  165. package/dist/atlas/serialize.js.map +1 -0
  166. package/dist/atlas/statement.d.ts +165 -0
  167. package/dist/atlas/statement.d.ts.map +1 -0
  168. package/dist/atlas/statement.js +176 -0
  169. package/dist/atlas/statement.js.map +1 -0
  170. package/dist/atlas/types.d.ts +308 -0
  171. package/dist/atlas/types.d.ts.map +1 -0
  172. package/dist/atlas/types.js +61 -0
  173. package/dist/atlas/types.js.map +1 -0
  174. package/dist/atlas/waves/bridges-closure.d.ts +39 -0
  175. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -0
  176. package/dist/atlas/waves/bridges-closure.js +223 -0
  177. package/dist/atlas/waves/bridges-closure.js.map +1 -0
  178. package/dist/atlas/waves/bridges.d.ts +49 -0
  179. package/dist/atlas/waves/bridges.d.ts.map +1 -0
  180. package/dist/atlas/waves/bridges.js +265 -0
  181. package/dist/atlas/waves/bridges.js.map +1 -0
  182. package/dist/atlas/waves/index.d.ts +16 -0
  183. package/dist/atlas/waves/index.d.ts.map +1 -0
  184. package/dist/atlas/waves/index.js +23 -0
  185. package/dist/atlas/waves/index.js.map +1 -0
  186. package/dist/atlas/waves/models.d.ts +29 -0
  187. package/dist/atlas/waves/models.d.ts.map +1 -0
  188. package/dist/atlas/waves/models.js +127 -0
  189. package/dist/atlas/waves/models.js.map +1 -0
  190. package/dist/atlas/waves/numerics.d.ts +149 -0
  191. package/dist/atlas/waves/numerics.d.ts.map +1 -0
  192. package/dist/atlas/waves/numerics.js +218 -0
  193. package/dist/atlas/waves/numerics.js.map +1 -0
  194. package/dist/atlas/witness-artifact.d.ts +65 -0
  195. package/dist/atlas/witness-artifact.d.ts.map +1 -0
  196. package/dist/atlas/witness-artifact.js +78 -0
  197. package/dist/atlas/witness-artifact.js.map +1 -0
  198. package/dist/atlas/witness-numeric.d.ts +81 -0
  199. package/dist/atlas/witness-numeric.d.ts.map +1 -0
  200. package/dist/atlas/witness-numeric.js +105 -0
  201. package/dist/atlas/witness-numeric.js.map +1 -0
  202. package/dist/atlas/witness-result.d.ts +77 -0
  203. package/dist/atlas/witness-result.d.ts.map +1 -0
  204. package/dist/atlas/witness-result.js +39 -0
  205. package/dist/atlas/witness-result.js.map +1 -0
  206. package/dist/atlas/witness-specs.d.ts +110 -0
  207. package/dist/atlas/witness-specs.d.ts.map +1 -0
  208. package/dist/atlas/witness-specs.js +372 -0
  209. package/dist/atlas/witness-specs.js.map +1 -0
  210. package/dist/atlas/witness-symbolic.d.ts +79 -0
  211. package/dist/atlas/witness-symbolic.d.ts.map +1 -0
  212. package/dist/atlas/witness-symbolic.js +140 -0
  213. package/dist/atlas/witness-symbolic.js.map +1 -0
  214. package/dist/atlas/witnesses/quantum-support.d.ts +50 -0
  215. package/dist/atlas/witnesses/quantum-support.d.ts.map +1 -0
  216. package/dist/atlas/witnesses/quantum-support.js +48 -0
  217. package/dist/atlas/witnesses/quantum-support.js.map +1 -0
  218. package/dist/bridges/be11-decoherence-confrontation.js.map +1 -1
  219. package/dist/bridges/be21-kss-confrontation.js.map +1 -1
  220. package/dist/bridges/be23-planckian-confrontation.js.map +1 -1
  221. package/dist/bridges/be35-bootstrap-confrontation.js.map +1 -1
  222. package/dist/bridges/be36-gw170817-confrontation.js.map +1 -1
  223. package/dist/bridges/be37-cassini-confrontation.js.map +1 -1
  224. package/dist/bridges/be48-collapse-confrontation.js.map +1 -1
  225. package/dist/bridges/be51-lensing-confrontation.js.map +1 -1
  226. package/dist/bridges/be52-mercury-confrontation.js.map +1 -1
  227. package/dist/bridges/be55-quantum-hall-confrontation.js.map +1 -1
  228. package/dist/bridges/be56-casimir-confrontation.js.map +1 -1
  229. package/dist/bridges/be58-johnson-nyquist-confrontation.js.map +1 -1
  230. package/dist/bridges/be59-ac-josephson-confrontation.js.map +1 -1
  231. package/dist/bridges/be60-fractional-qh-confrontation.js.map +1 -1
  232. package/dist/bridges/be61-wiedemann-franz-confrontation.js.map +1 -1
  233. package/dist/bridges/be62-bcs-gap-confrontation.js.map +1 -1
  234. package/dist/bridges/be63-chandrasekhar-mass-confrontation.js.map +1 -1
  235. package/dist/bridges/be64-eddington-luminosity-confrontation.js.map +1 -1
  236. package/dist/bridges/be65-jeans-mass-confrontation.js.map +1 -1
  237. package/dist/bridges/bridge-equations.d.ts +2 -1
  238. package/dist/bridges/bridge-equations.d.ts.map +1 -1
  239. package/dist/bridges/bridge-equations.js +3 -2
  240. package/dist/bridges/bridge-equations.js.map +1 -1
  241. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  242. package/dist/bridges/catalog-adapter.js.map +1 -1
  243. package/dist/bridges/equations/_be-helpers.d.ts +2 -2
  244. package/dist/bridges/equations/_be-helpers.js +2 -2
  245. package/dist/bridges/equations/be-20-vacuum-energy.js.map +1 -1
  246. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts +88 -58
  247. package/dist/bridges/equations/be-35-conformal-bootstrap.d.ts.map +1 -1
  248. package/dist/bridges/equations/be-35-conformal-bootstrap.js +102 -62
  249. package/dist/bridges/equations/be-35-conformal-bootstrap.js.map +1 -1
  250. package/dist/bridges/equations/be-48-grw-localization.d.ts +9 -8
  251. package/dist/bridges/equations/be-48-grw-localization.d.ts.map +1 -1
  252. package/dist/bridges/equations/be-48-grw-localization.js +9 -8
  253. package/dist/bridges/equations/be-48-grw-localization.js.map +1 -1
  254. package/dist/bridges/gravitational-lensing.d.ts +10 -0
  255. package/dist/bridges/gravitational-lensing.d.ts.map +1 -1
  256. package/dist/bridges/gravitational-lensing.js.map +1 -1
  257. package/dist/bridges/index.d.ts +125 -7
  258. package/dist/bridges/index.d.ts.map +1 -1
  259. package/dist/bridges/index.js +483 -20
  260. package/dist/bridges/index.js.map +1 -1
  261. package/dist/bridges/perihelion-precession.d.ts +10 -0
  262. package/dist/bridges/perihelion-precession.d.ts.map +1 -1
  263. package/dist/bridges/perihelion-precession.js.map +1 -1
  264. package/dist/bridges/rhs-registry.js +2 -2
  265. package/dist/canonical/canonical-equation.d.ts +15 -0
  266. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  267. package/dist/canonical/entries/_l1-build.d.ts +1 -1
  268. package/dist/canonical/entries/_l1-build.d.ts.map +1 -1
  269. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  270. package/dist/canonical/entries/atomic.js +23 -0
  271. package/dist/canonical/entries/atomic.js.map +1 -1
  272. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  273. package/dist/canonical/entries/nonmonomial.js +93 -0
  274. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  275. package/dist/canonical/normal-form.js.map +1 -1
  276. package/dist/canonical/residual.d.ts +28 -0
  277. package/dist/canonical/residual.d.ts.map +1 -0
  278. package/dist/canonical/residual.js +31 -0
  279. package/dist/canonical/residual.js.map +1 -0
  280. package/dist/cli/command.d.ts +8 -0
  281. package/dist/cli/command.d.ts.map +1 -1
  282. package/dist/cli/command.js +10 -0
  283. package/dist/cli/command.js.map +1 -1
  284. package/dist/cli/commands/atlas.d.ts +3 -0
  285. package/dist/cli/commands/atlas.d.ts.map +1 -0
  286. package/dist/cli/commands/atlas.js +158 -0
  287. package/dist/cli/commands/atlas.js.map +1 -0
  288. package/dist/cli/commands/confront.js.map +1 -1
  289. package/dist/cli/commands/coverage.js +3 -3
  290. package/dist/cli/commands/index.d.ts +3 -0
  291. package/dist/cli/commands/index.d.ts.map +1 -1
  292. package/dist/cli/commands/index.js +3 -0
  293. package/dist/cli/commands/index.js.map +1 -1
  294. package/dist/cli/commands/map.d.ts.map +1 -1
  295. package/dist/cli/commands/map.js +161 -27
  296. package/dist/cli/commands/map.js.map +1 -1
  297. package/dist/cli/commands/path.d.ts +3 -0
  298. package/dist/cli/commands/path.d.ts.map +1 -0
  299. package/dist/cli/commands/path.js +145 -0
  300. package/dist/cli/commands/path.js.map +1 -0
  301. package/dist/cli/commands/recover.d.ts.map +1 -1
  302. package/dist/cli/commands/recover.js +25 -6
  303. package/dist/cli/commands/recover.js.map +1 -1
  304. package/dist/cli/commands/regime.d.ts +14 -0
  305. package/dist/cli/commands/regime.d.ts.map +1 -0
  306. package/dist/cli/commands/regime.js +189 -0
  307. package/dist/cli/commands/regime.js.map +1 -0
  308. package/dist/cli/errors.d.ts.map +1 -1
  309. package/dist/cli/graphs.d.ts.map +1 -1
  310. package/dist/cli/graphs.js +5 -1
  311. package/dist/cli/graphs.js.map +1 -1
  312. package/dist/cli/main.d.ts.map +1 -1
  313. package/dist/cli/main.js +22 -0
  314. package/dist/cli/main.js.map +1 -1
  315. package/dist/cli/output.d.ts +6 -1
  316. package/dist/cli/output.d.ts.map +1 -1
  317. package/dist/cli/output.js.map +1 -1
  318. package/dist/cli/version.js.map +1 -1
  319. package/dist/cli-api.d.ts +16 -0
  320. package/dist/cli-api.d.ts.map +1 -1
  321. package/dist/cli-api.js +18 -0
  322. package/dist/cli-api.js.map +1 -1
  323. package/dist/composition/axis-audit.js.map +1 -1
  324. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  325. package/dist/composition/bridge-prediction.js +0 -0
  326. package/dist/composition/bridge-prediction.js.map +1 -1
  327. package/dist/composition/canonical-graph.d.ts +2 -2
  328. package/dist/composition/canonical-graph.js +2 -2
  329. package/dist/composition/canonical-graph.js.map +1 -1
  330. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  331. package/dist/composition/compose-symbolic.js.map +1 -1
  332. package/dist/composition/compose.d.ts.map +1 -1
  333. package/dist/composition/compose.js +80 -1
  334. package/dist/composition/compose.js.map +1 -1
  335. package/dist/composition/consequence.js.map +1 -1
  336. package/dist/composition/discovery.js.map +1 -1
  337. package/dist/composition/edge.d.ts +64 -0
  338. package/dist/composition/edge.d.ts.map +1 -1
  339. package/dist/composition/edge.js +29 -0
  340. package/dist/composition/edge.js.map +1 -1
  341. package/dist/composition/edges/calibration.d.ts.map +1 -1
  342. package/dist/composition/edges/calibration.js +46 -0
  343. package/dist/composition/edges/calibration.js.map +1 -1
  344. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
  345. package/dist/composition/edges/catalog-quantum.js +9 -0
  346. package/dist/composition/edges/catalog-quantum.js.map +1 -1
  347. package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
  348. package/dist/composition/edges/catalog-tranche.js +18 -0
  349. package/dist/composition/edges/catalog-tranche.js.map +1 -1
  350. package/dist/composition/enumerate.js.map +1 -1
  351. package/dist/composition/explain.js.map +1 -1
  352. package/dist/composition/expr-eval.d.ts.map +1 -1
  353. package/dist/composition/expr-eval.js.map +1 -1
  354. package/dist/composition/expr-simplify.d.ts +13 -0
  355. package/dist/composition/expr-simplify.d.ts.map +1 -1
  356. package/dist/composition/expr-simplify.js +25 -0
  357. package/dist/composition/expr-simplify.js.map +1 -1
  358. package/dist/composition/expr-subst.js.map +1 -1
  359. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  360. package/dist/composition/graph-viz.d.ts +118 -1
  361. package/dist/composition/graph-viz.d.ts.map +1 -1
  362. package/dist/composition/graph-viz.js +189 -6
  363. package/dist/composition/graph-viz.js.map +1 -1
  364. package/dist/composition/identifiability.js.map +1 -1
  365. package/dist/composition/index.d.ts +4 -2
  366. package/dist/composition/index.d.ts.map +1 -1
  367. package/dist/composition/index.js +2 -1
  368. package/dist/composition/index.js.map +1 -1
  369. package/dist/composition/poster-source.d.ts +153 -0
  370. package/dist/composition/poster-source.d.ts.map +1 -0
  371. package/dist/composition/poster-source.js +183 -0
  372. package/dist/composition/poster-source.js.map +1 -0
  373. package/dist/composition/probe/backend-protocol.d.ts +34 -1
  374. package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
  375. package/dist/composition/probe/backend-protocol.js +9 -2
  376. package/dist/composition/probe/backend-protocol.js.map +1 -1
  377. package/dist/composition/probe/candidate-store.d.ts.map +1 -1
  378. package/dist/composition/probe/limits.js.map +1 -1
  379. package/dist/composition/probe/pipeline.js.map +1 -1
  380. package/dist/composition/probe/problem.js.map +1 -1
  381. package/dist/composition/probe/residual.d.ts.map +1 -1
  382. package/dist/composition/probe/residual.js.map +1 -1
  383. package/dist/composition/probe/search-budget.js.map +1 -1
  384. package/dist/composition/proposed-bridges.d.ts +2 -2
  385. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  386. package/dist/composition/proposed-bridges.js +1 -1
  387. package/dist/composition/proposed-bridges.js.map +1 -1
  388. package/dist/composition/retrodiction.js.map +1 -1
  389. package/dist/composition/uncertainty.d.ts +52 -2
  390. package/dist/composition/uncertainty.d.ts.map +1 -1
  391. package/dist/composition/uncertainty.js +38 -2
  392. package/dist/composition/uncertainty.js.map +1 -1
  393. package/dist/composition/user-equation.d.ts.map +1 -1
  394. package/dist/core/flux-rules.d.ts.map +1 -1
  395. package/dist/core/flux-rules.js.map +1 -1
  396. package/dist/core/labeled-tensor.d.ts.map +1 -1
  397. package/dist/core/regime-registry.d.ts.map +1 -1
  398. package/dist/core/regime-rule-install.js.map +1 -1
  399. package/dist/core/tensor.d.ts.map +1 -1
  400. package/dist/core/tensor.js.map +1 -1
  401. package/dist/core/types.d.ts.map +1 -1
  402. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  403. package/dist/dimensional/ast-types.d.ts +31 -1
  404. package/dist/dimensional/ast-types.d.ts.map +1 -1
  405. package/dist/dimensional/bridge-check.d.ts +1 -1
  406. package/dist/dimensional/bridge-check.js +1 -1
  407. package/dist/dimensional/buckingham.d.ts.map +1 -1
  408. package/dist/dimensional/connection.d.ts +2 -0
  409. package/dist/dimensional/connection.d.ts.map +1 -1
  410. package/dist/dimensional/connection.js +2 -0
  411. package/dist/dimensional/connection.js.map +1 -1
  412. package/dist/dimensional/curvature-composite.d.ts +5 -3
  413. package/dist/dimensional/curvature-composite.d.ts.map +1 -1
  414. package/dist/dimensional/curvature-composite.js +1 -0
  415. package/dist/dimensional/curvature-composite.js.map +1 -1
  416. package/dist/dimensional/curvature-invariants.d.ts +2 -0
  417. package/dist/dimensional/curvature-invariants.d.ts.map +1 -1
  418. package/dist/dimensional/curvature-invariants.js +2 -0
  419. package/dist/dimensional/curvature-invariants.js.map +1 -1
  420. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  421. package/dist/dimensional/einstein-equation.d.ts +3 -3
  422. package/dist/dimensional/einstein-equation.js +3 -3
  423. package/dist/dimensional/errors.d.ts.map +1 -1
  424. package/dist/dimensional/metric.d.ts +5 -2
  425. package/dist/dimensional/metric.d.ts.map +1 -1
  426. package/dist/dimensional/metric.js +5 -2
  427. package/dist/dimensional/metric.js.map +1 -1
  428. package/dist/dimensional/tensor-trace.js.map +1 -1
  429. package/dist/dimensional/validator-registry.js.map +1 -1
  430. package/dist/dimensional/validator.d.ts +3 -2
  431. package/dist/dimensional/validator.d.ts.map +1 -1
  432. package/dist/dimensional/validator.js +23 -4
  433. package/dist/dimensional/validator.js.map +1 -1
  434. package/dist/index.d.ts +4 -3
  435. package/dist/index.d.ts.map +1 -1
  436. package/dist/index.js +4 -1
  437. package/dist/index.js.map +1 -1
  438. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  439. package/dist/numerical/curvature-lowering-helpers.js +104 -0
  440. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  441. package/dist/numerical/errors.d.ts.map +1 -1
  442. package/dist/numerical/errors.js.map +1 -1
  443. package/dist/numerical/float64-engine.d.ts.map +1 -1
  444. package/dist/numerical/float64-engine.js +51 -24
  445. package/dist/numerical/float64-engine.js.map +1 -1
  446. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  447. package/dist/numerical/formula-dimension.js.map +1 -1
  448. package/dist/numerical/formula.d.ts.map +1 -1
  449. package/dist/numerical/formula.js.map +1 -1
  450. package/dist/numerical/geometrized.d.ts.map +1 -1
  451. package/dist/numerical/gl4-integrator.d.ts +3 -3
  452. package/dist/numerical/gl4-integrator.js +3 -3
  453. package/dist/numerical/killing.d.ts +47 -5
  454. package/dist/numerical/killing.d.ts.map +1 -1
  455. package/dist/numerical/killing.js +41 -3
  456. package/dist/numerical/killing.js.map +1 -1
  457. package/dist/numerical/klein-gordon.d.ts +2 -2
  458. package/dist/numerical/klein-gordon.js +2 -2
  459. package/dist/numerical/lowering.d.ts +2 -2
  460. package/dist/numerical/lowering.d.ts.map +1 -1
  461. package/dist/numerical/lowering.js +5 -3
  462. package/dist/numerical/lowering.js.map +1 -1
  463. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  464. package/dist/numerical/mathts-engine.js.map +1 -1
  465. package/dist/numerical/metric-inverse.js.map +1 -1
  466. package/dist/numerical/perihelion-finder.d.ts +15 -13
  467. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  468. package/dist/numerical/perihelion-finder.js +15 -13
  469. package/dist/numerical/perihelion-finder.js.map +1 -1
  470. package/dist/numerical/weyl-lowering.d.ts.map +1 -1
  471. package/dist/numerical/weyl-lowering.js +90 -40
  472. package/dist/numerical/weyl-lowering.js.map +1 -1
  473. package/package.json +121 -104
@@ -0,0 +1,430 @@
1
+ /**
2
+ * Atlas Phase 3 — the poster's typed edges.
3
+ *
4
+ * `ROADMAP.md` Phase 3 states FIFTEEN bridge lines. This module records all
5
+ * fifteen, each in the container its type demands, and {@link POSTER_LINES} is
6
+ * the table that makes "all fifteen, correctly typed" a checkable claim rather
7
+ * than a reading of the source.
8
+ *
9
+ * ## Three containers, because the lines are three different acts
10
+ *
11
+ * - **{@link POSTER_DERIVATIONS}** — a `Derivation` asserts `premises ⊢
12
+ * conclusion`. Most lines are this.
13
+ * - **`./associations.ts`** — `7 ↔ 16` is an **association for the historical
14
+ * link only**, and `3, 14 → *` is association only. An `Association` makes
15
+ * no composite claim and is not a graph edge (`../association.ts`), which is
16
+ * exactly the content of those two lines.
17
+ * - **{@link POSTER_CONSTRAINTS}** — `5, 16 → 8` *"constrain but do not
18
+ * determine"*. Neither of the other two containers can say that. A
19
+ * `Derivation` would assert that 5 and 16 YIELD 8, which is the claim the
20
+ * line explicitly denies; an `Association` would say only that the three
21
+ * resemble each other, which drops the constraint. **This third container is
22
+ * a correction to the S3.3 brief**, which allows only derivations and
23
+ * associations; recording `5, 16 → 8` as a derivation would have been the
24
+ * overclaim the sprint exists to prevent. The variational route the line
25
+ * names — Einstein–Hilbert — IS a derivation, and it is recorded as one.
26
+ *
27
+ * ## One derivation has no premises, and that is the honest form
28
+ *
29
+ * `d-4-commutator` records the line *"`4` derivation from the commutator and
30
+ * Cauchy–Schwarz, no time-dependent equation needed"*. Its two inputs are not
31
+ * poster entries, and they are not among the five hidden nodes `ROADMAP.md`
32
+ * names. Inventing `statement-canonical-commutator` to fill the premise slot
33
+ * would be the invention §5 of the design note forbids, so the inputs are
34
+ * recorded as `sideConditions` and the premise set is empty. The empty set
35
+ * does not assert that entry 4 follows from nothing — `sideConditions` carries
36
+ * what it follows from — and {@link validatePosterRelations} pins that this is
37
+ * the ONLY empty-premise record, so a second one cannot appear unnoticed.
38
+ *
39
+ * ## Witnesses
40
+ *
41
+ * `Derivation` has no `witnesses` field (`../derivation.ts` is Wave 1's and is
42
+ * not mine to widen), so {@link POSTER_WITNESSES} is a side table keyed by
43
+ * derivation id. The two Sprint 0 witnesses land where `ROADMAP.md` puts them:
44
+ * W4 (chirped Gaussian) on `13 ↔ 4`, W5 (Wick rotation) on `6 ↔ 13`.
45
+ *
46
+ * @module atlas/poster/derivations
47
+ */
48
+ import { makeDerivation } from '../derivation.js';
49
+ import { POSTER_ASSOCIATIONS, ASSOCIATION_ONLY_PAIRS } from './associations.js';
50
+ import { POSTER_REGISTRY, posterId } from './statements.js';
51
+ const d = (id, relation, premises, conclusion, sideConditions) => makeDerivation({ id, relation, premises, conclusion, sideConditions }, POSTER_REGISTRY);
52
+ /**
53
+ * The poster's derivation hyperedges.
54
+ *
55
+ * Each `relation` is the type `ROADMAP.md` names for its line, and each
56
+ * `sideConditions` list carries that line's qualifications — including the
57
+ * ones that say what the edge does NOT give, because a qualification dropped
58
+ * here is a claim widened silently.
59
+ *
60
+ * @internal
61
+ */
62
+ export const POSTER_DERIVATIONS = [
63
+ // L1 — "10 → 9 restriction plus separate frame content in 9".
64
+ d('d-10-to-9', 'restriction', [posterId(10)], posterId(9), [
65
+ 'restriction to net force zero',
66
+ "entry 9's inertial-frame content is SEPARATE and is not supplied by this restriction",
67
+ ]),
68
+ // L2 — "11 → momentum conservation for isolated particle systems (converse
69
+ // fails; translation symmetry gives the field-inclusive version under action
70
+ // and boundary assumptions)". Two records: the line states two routes.
71
+ d('d-11-to-momentum', 'derivation', [posterId(11)], 'statement-momentum-conservation', [
72
+ 'isolated particle system',
73
+ 'the converse FAILS: momentum conservation does not give the third law',
74
+ 'fails naively when fields carry momentum',
75
+ ]),
76
+ d('d-noether-to-momentum-fields', 'derivation', ['statement-action-principle', 'statement-noether'], 'statement-momentum-conservation-fields', [
77
+ 'spatial translation symmetry of a stated action',
78
+ 'stated boundary conditions',
79
+ 'this is the FIELD-INCLUSIVE version; it does not run through entry 11',
80
+ ]),
81
+ // L3 — "1 ↔ energy conservation via Noether for autonomous models, which
82
+ // defines neither heat nor a global energy in curved spacetime".
83
+ d('d-1-energy-conservation', 'exact-equivalence', [posterId(1), 'statement-noether'], 'statement-energy-conservation', [
84
+ 'autonomous model (no explicit time dependence)',
85
+ 'it defines NEITHER heat NOR work',
86
+ 'it gives NO global energy in curved spacetime',
87
+ ]),
88
+ // L4 — "8 → 12 approximation (weak field, slow motion, near-stationary,
89
+ // negligible Λ) then restriction to a point source". Recorded as ONE
90
+ // approximation rather than two composed edges: the intermediate statement
91
+ // (the weak-field field equation) is neither a poster entry nor one of the
92
+ // five named hidden nodes, so a node for it would be invented. The two
93
+ // stages are stated, in order, in the side conditions.
94
+ d('d-8-to-12', 'approximation', [posterId(8)], posterId(12), [
95
+ 'weak field',
96
+ 'slow motion',
97
+ 'near-stationary',
98
+ 'negligible Λ',
99
+ 'THEN restriction to a point source',
100
+ ]),
101
+ // L5 — "16 → 5, 10 approximation in v/c, regular, needing E = γmc²,
102
+ // p = γmv, F = dp/dt". One conclusion per record: a `Derivation` has one.
103
+ d('d-16-to-5', 'approximation', [posterId(16)], posterId(5), [
104
+ 'expansion in v/c',
105
+ 'regular limit',
106
+ 'needs E = γmc², p = γmv, F = dp/dt',
107
+ ]),
108
+ d('d-16-to-10', 'approximation', [posterId(16)], posterId(10), [
109
+ 'expansion in v/c',
110
+ 'regular limit',
111
+ 'needs E = γmc², p = γmv, F = dp/dt',
112
+ ]),
113
+ // L6 (derivation half) — "the derivation route is a hyperedge {full Maxwell
114
+ // system, spacetime structure} → 16, never from 7 alone". The historical
115
+ // half of this line is an ASSOCIATION; see ./associations.ts.
116
+ d('d-maxwell-spacetime-to-16', 'derivation', ['statement-maxwell-system', 'statement-lorentz-group'], posterId(16), [
117
+ 'the full Maxwell SYSTEM, never entry 7 alone',
118
+ "'spacetime structure' is recorded as statement-lorentz-group; " +
119
+ 'ROADMAP.md names five hidden nodes and that is the one it can be',
120
+ ]),
121
+ // L7 (the route that DOES determine 8) — "Einstein–Hilbert is a separate
122
+ // variational route". The constraint half is in POSTER_CONSTRAINTS.
123
+ d('d-einstein-hilbert-to-8', 'derivation', ['statement-action-principle'], posterId(8), [
124
+ 'the Einstein–Hilbert action',
125
+ 'variation with respect to the metric',
126
+ 'this route is SEPARATE from the 5, 16 constraint',
127
+ ]),
128
+ // L8 — "6 ↔ 15 linearity preserves superposition, Hilbert-space kinematics
129
+ // supplies it". Typed one way only: the reverse is not this edge, because
130
+ // superposition comes from the kinematics rather than from entry 6.
131
+ d('d-6-to-15', 'derivation', [posterId(6)], posterId(15), [
132
+ 'linearity of the evolution equation preserves superposition',
133
+ 'Hilbert-space KINEMATICS supplies superposition; entry 6 does not',
134
+ ]),
135
+ // L9 — "4 derivation from the commutator and Cauchy–Schwarz, no
136
+ // time-dependent equation needed". Premise set deliberately EMPTY; see the
137
+ // module note.
138
+ d('d-4-commutator', 'derivation', [], posterId(4), [
139
+ 'the canonical commutator [x, p] = iħ',
140
+ 'the Cauchy–Schwarz inequality',
141
+ 'NO time-dependent equation is needed; this route does not run through entry 6',
142
+ 'the two inputs are neither poster entries nor named hidden nodes, so no premise ' +
143
+ 'statement exists for them and none is invented',
144
+ ]),
145
+ // L10 — "13 ↔ 4: a Gaussian *family* saturates the bound, a Gaussian
146
+ // density does not (Sprint 0 check 4)". Exact-equivalence because the
147
+ // saturation is an EQUALITY at α = 0, which W4 computes exactly.
148
+ d('d-13-4-saturation', 'exact-equivalence', [posterId(13)], posterId(4), [
149
+ 'a Gaussian FAMILY (parameterized by its width) saturates σ_x σ_p = ħ/2',
150
+ 'a Gaussian DENSITY does not: the chirped Gaussian is Gaussian in |ψ|² and ' +
151
+ 'has σ_x σ_p = (ħ/2)√(1 + 16α²s⁴) > ħ/2 for α ≠ 0',
152
+ 'σ > 0',
153
+ ]),
154
+ // L11 — "6 ↔ 13 analytic continuation to the heat semigroup for
155
+ // self-adjoint, lower-bounded H, Gaussian kernel only when V = 0
156
+ // (Sprint 0 check 5)".
157
+ d('d-6-13-wick', 'analytic-continuation', [posterId(6)], posterId(13), [
158
+ 'self-adjoint H',
159
+ 'lower-bounded H',
160
+ 'the kernel is GAUSSIAN only when V = 0',
161
+ ]),
162
+ // L12 — "2 → 13 two routes (central limit, maximum entropy), neither from
163
+ // Boltzmann alone".
164
+ d('d-2-13-central-limit', 'derivation', [posterId(2), 'statement-central-limit-theorem'], posterId(13), [
165
+ 'independent, identically distributed summands of finite variance',
166
+ 'NOT from entry 2 alone: the theorem is the second premise',
167
+ 'σ > 0',
168
+ ]),
169
+ d('d-2-13-maximum-entropy', 'derivation', [posterId(2)], posterId(13), [
170
+ 'maximum entropy subject to a fixed mean and variance',
171
+ 'NOT from entry 2 alone: the constraint set is an added input, and it is not a ' +
172
+ 'statement in this index',
173
+ 'σ > 0',
174
+ ]),
175
+ // L13 — "2 → 1 needs a microscopic energy model, an ensemble choice, and
176
+ // definitions of heat and work".
177
+ d('d-2-to-1', 'derivation', [posterId(2)], posterId(1), [
178
+ 'a microscopic energy model',
179
+ 'an ensemble choice',
180
+ 'definitions of heat and work',
181
+ ]),
182
+ // L14 — "6 → 10 Ehrenfest, exact for affine forces, approximate for
183
+ // localized packets, distinct from the singular ħ → 0 limit". Two records:
184
+ // one exact, one approximate. One record could carry only one relation
185
+ // type, and the line states both.
186
+ d('d-6-to-10-ehrenfest-exact', 'derivation', [posterId(6)], posterId(10), [
187
+ 'affine forces (F linear in x), for which the Ehrenfest relation is EXACT',
188
+ 'distinct from the singular ħ → 0 limit',
189
+ ]),
190
+ d('d-6-to-10-ehrenfest-approx', 'approximation', [posterId(6)], posterId(10), [
191
+ 'localized wave packets, for which the Ehrenfest relation is APPROXIMATE',
192
+ 'distinct from the singular ħ → 0 limit',
193
+ ]),
194
+ ];
195
+ /**
196
+ * `5, 16 → 8` — the one line that asserts a constraint and denies a
197
+ * derivation. See the module note for why it gets its own container.
198
+ *
199
+ * @internal
200
+ */
201
+ export const POSTER_CONSTRAINTS = [
202
+ {
203
+ id: 'c-5-16-constrain-8',
204
+ premises: [posterId(5), posterId(16)],
205
+ constrains: posterId(8),
206
+ note: 'entries 5 and 16 CONSTRAIN the field equations but do not determine them; ' +
207
+ 'Einstein–Hilbert is a separate variational route',
208
+ alternativeRoute: 'd-einstein-hilbert-to-8',
209
+ },
210
+ ];
211
+ /**
212
+ * The Sprint 0 witnesses, attached where `ROADMAP.md` Phase 3 puts them.
213
+ *
214
+ * A side table rather than a field, because `Derivation` is Wave 1's record
215
+ * and widening it is not this brief's scope.
216
+ *
217
+ * @internal
218
+ */
219
+ export const POSTER_WITNESSES = {
220
+ 'd-13-4-saturation': [
221
+ { id: 'W4', kind: 'numeric', test: 'tests/atlas/quantum-support.test.ts' },
222
+ ],
223
+ 'd-6-13-wick': [
224
+ {
225
+ id: 'W5',
226
+ kind: 'numeric',
227
+ test: 'tests/atlas/quantum-support.test.ts',
228
+ tolerance: '1e-4 sup-norm ratio on the stated interval',
229
+ },
230
+ ],
231
+ };
232
+ /**
233
+ * The fifteen lines, and where each one is recorded.
234
+ *
235
+ * The table is the deliverable "all fifteen, correctly typed" in checkable
236
+ * form: {@link validatePosterRelations} resolves every `records` id in every
237
+ * `containers` entry, so a line that lost its record, or a record that moved
238
+ * to the wrong container, is a failure rather than a reading.
239
+ *
240
+ * @internal
241
+ */
242
+ export const POSTER_LINES = [
243
+ {
244
+ id: 'L1',
245
+ line: '10 → 9 restriction plus separate frame content in 9',
246
+ containers: ['derivation'],
247
+ records: ['d-10-to-9'],
248
+ },
249
+ {
250
+ id: 'L2',
251
+ line: '11 → momentum conservation for isolated particle systems (converse fails; ' +
252
+ 'translation symmetry gives the field-inclusive version)',
253
+ containers: ['derivation'],
254
+ records: ['d-11-to-momentum', 'd-noether-to-momentum-fields'],
255
+ },
256
+ {
257
+ id: 'L3',
258
+ line: '1 ↔ energy conservation via Noether for autonomous models',
259
+ containers: ['derivation'],
260
+ records: ['d-1-energy-conservation'],
261
+ },
262
+ {
263
+ id: 'L4',
264
+ line: '8 → 12 approximation (weak field, slow motion, near-stationary, negligible Λ) ' +
265
+ 'then restriction to a point source',
266
+ containers: ['derivation'],
267
+ records: ['d-8-to-12'],
268
+ },
269
+ {
270
+ id: 'L5',
271
+ line: '16 → 5, 10 approximation in v/c, regular, needing E = γmc², p = γmv, F = dp/dt',
272
+ containers: ['derivation'],
273
+ records: ['d-16-to-5', 'd-16-to-10'],
274
+ },
275
+ {
276
+ id: 'L6',
277
+ line: '7 ↔ 16 ASSOCIATION for the historical link only — the derivation route is the ' +
278
+ 'hyperedge {full Maxwell system, spacetime structure} → 16, never from 7 alone',
279
+ containers: ['association', 'derivation'],
280
+ records: ['a-7-16-historical', 'd-maxwell-spacetime-to-16'],
281
+ },
282
+ {
283
+ id: 'L7',
284
+ line: '5, 16 → 8 constrain but do not determine (Einstein–Hilbert is a separate route)',
285
+ containers: ['constraint', 'derivation'],
286
+ records: ['c-5-16-constrain-8', 'd-einstein-hilbert-to-8'],
287
+ },
288
+ {
289
+ id: 'L8',
290
+ line: '6 ↔ 15 linearity preserves superposition, Hilbert-space kinematics supplies it',
291
+ containers: ['derivation'],
292
+ records: ['d-6-to-15'],
293
+ },
294
+ {
295
+ id: 'L9',
296
+ line: '4 derivation from the commutator and Cauchy–Schwarz, no time-dependent equation',
297
+ containers: ['derivation'],
298
+ records: ['d-4-commutator'],
299
+ },
300
+ {
301
+ id: 'L10',
302
+ line: '13 ↔ 4 a Gaussian family saturates the bound, a Gaussian density does not',
303
+ containers: ['derivation'],
304
+ records: ['d-13-4-saturation'],
305
+ },
306
+ {
307
+ id: 'L11',
308
+ line: '6 ↔ 13 analytic continuation to the heat semigroup for self-adjoint, lower-bounded H, ' +
309
+ 'Gaussian kernel only when V = 0',
310
+ containers: ['derivation'],
311
+ records: ['d-6-13-wick'],
312
+ },
313
+ {
314
+ id: 'L12',
315
+ line: '2 → 13 two routes (central limit, maximum entropy), neither from Boltzmann alone',
316
+ containers: ['derivation'],
317
+ records: ['d-2-13-central-limit', 'd-2-13-maximum-entropy'],
318
+ },
319
+ {
320
+ id: 'L13',
321
+ line: '2 → 1 needs a microscopic energy model, an ensemble choice, and heat and work',
322
+ containers: ['derivation'],
323
+ records: ['d-2-to-1'],
324
+ },
325
+ {
326
+ id: 'L14',
327
+ line: '6 → 10 Ehrenfest, exact for affine forces, approximate for localized packets, ' +
328
+ 'distinct from the singular ħ → 0 limit',
329
+ containers: ['derivation'],
330
+ records: ['d-6-to-10-ehrenfest-exact', 'd-6-to-10-ehrenfest-approx'],
331
+ },
332
+ {
333
+ id: 'L15',
334
+ line: '3, 14 → * association only',
335
+ containers: ['association'],
336
+ records: ['a-3-association-only', 'a-14-association-only'],
337
+ },
338
+ ];
339
+ /** Is `id` recorded in `container`? */
340
+ function recordExists(container, id) {
341
+ if (container === 'derivation')
342
+ return POSTER_DERIVATIONS.some((x) => x.id === id);
343
+ if (container === 'constraint')
344
+ return POSTER_CONSTRAINTS.some((x) => x.id === id);
345
+ return POSTER_ASSOCIATIONS.some((x) => x.id === id);
346
+ }
347
+ /** The only derivation entitled to an empty premise set. See the module note. */
348
+ const EMPTY_PREMISE_DERIVATION = 'd-4-commutator';
349
+ /**
350
+ * Every defect this index can have that a type cannot catch.
351
+ *
352
+ * Six checks, and the third is the one the S3.3 brief singles out:
353
+ *
354
+ * 1. **Unknown statement.** Every premise and conclusion resolves in
355
+ * `POSTER_REGISTRY`.
356
+ * 2. **No context union.** A derivation whose premises do not pool states no
357
+ * claim; `makeDerivation` records that rather than throwing, so a record
358
+ * carrying a refusal would otherwise sit in the list looking like an edge.
359
+ * 3. **An association typed as a derivation.** `7 ↔ 16` and `3, 14 → *` are
360
+ * associations. If a derivation ever links either pair — in either
361
+ * direction — the distinction has been lost, and it is the distinction
362
+ * that carries the physics: the route to 16 runs from the full Maxwell
363
+ * system, *never from 7 alone*.
364
+ * 4. **Missing record / 5. wrong container.** Every id in
365
+ * {@link POSTER_LINES} exists, in one of the containers its line declares.
366
+ * 6. **Unexpected empty premises.** Exactly one record may have none.
367
+ *
368
+ * Returns problems rather than throwing, so a caller sees ALL of them at once
369
+ * — a thrown first defect hides the rest, and this list is checked as a whole.
370
+ *
371
+ * @internal
372
+ */
373
+ export function validatePosterRelations() {
374
+ const problems = [];
375
+ for (const der of POSTER_DERIVATIONS) {
376
+ for (const sid of [...der.premises, der.conclusion]) {
377
+ if (!POSTER_REGISTRY.has(sid)) {
378
+ problems.push({
379
+ kind: 'unknown-statement',
380
+ detail: `derivation '${der.id}' references unknown statement '${sid}'`,
381
+ });
382
+ }
383
+ }
384
+ if (der.contextUnion.kind === 'no-union') {
385
+ problems.push({
386
+ kind: 'no-context-union',
387
+ detail: `derivation '${der.id}' has no context union ` +
388
+ `(${der.contextUnion.reason}: ${der.contextUnion.detail}), so it states no claim`,
389
+ });
390
+ }
391
+ if (der.premises.length === 0 && der.id !== EMPTY_PREMISE_DERIVATION) {
392
+ problems.push({
393
+ kind: 'unexpected-empty-premises',
394
+ detail: `derivation '${der.id}' has no premises; only '${EMPTY_PREMISE_DERIVATION}' may, ` +
395
+ 'and its two inputs are recorded in its side conditions',
396
+ });
397
+ }
398
+ for (const [a, b] of ASSOCIATION_ONLY_PAIRS) {
399
+ const touches = (der.premises.includes(a) && der.conclusion === b) ||
400
+ (der.premises.includes(b) && der.conclusion === a);
401
+ if (touches) {
402
+ problems.push({
403
+ kind: 'association-typed-as-derivation',
404
+ detail: `derivation '${der.id}' links '${a}' and '${b}', which ROADMAP.md Phase 3 ` +
405
+ 'records as an ASSOCIATION only; a derivation here asserts a route the line denies',
406
+ });
407
+ }
408
+ }
409
+ }
410
+ for (const line of POSTER_LINES) {
411
+ for (const id of line.records) {
412
+ const where = line.containers.filter((c) => recordExists(c, id));
413
+ if (where.length === 0) {
414
+ const anywhere = ['derivation', 'association', 'constraint'].filter((c) => recordExists(c, id));
415
+ problems.push(anywhere.length > 0
416
+ ? {
417
+ kind: 'wrong-container',
418
+ detail: `line ${line.id} declares '${id}' in ${line.containers.join('/')} ` +
419
+ `but it is recorded in ${anywhere.join('/')}`,
420
+ }
421
+ : {
422
+ kind: 'missing-record',
423
+ detail: `line ${line.id} declares '${id}', which is recorded nowhere`,
424
+ });
425
+ }
426
+ }
427
+ }
428
+ return problems;
429
+ }
430
+ //# sourceMappingURL=derivations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derivations.js","sourceRoot":"","sources":["../../../src/atlas/poster/derivations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Atlas Phase 3 — the poster's sixteen entries, its five hidden supporting
3
+ * nodes, and the three conservation statements its edges conclude in.
4
+ *
5
+ * ## The one rule this module exists to obey
6
+ *
7
+ * **Blueprint v2's Appendix A is NOT in this repo.** `ROADMAP.md` Phase 3
8
+ * states the fifteen typed edge lines and the five hidden nodes in full, and
9
+ * it references the sixteen entries BY NUMBER in identifying context — but no
10
+ * file here maps number → name. Design note
11
+ * `docs/planning/Atlas-Phase-3-Design.md` §5 is explicit about what follows:
12
+ * *"Transcribe or derive each entry from a stated source; never invent one to
13
+ * fill a gap."*
14
+ *
15
+ * So every entry below carries an {@link Identification}, and it is a FIELD
16
+ * rather than a comment because a comment cannot be tested. Three values:
17
+ *
18
+ * - `'derived'` — the edge lines pin it. `10 → 9` restriction with *"separate
19
+ * frame content in 9"*, `11 → momentum conservation … converse fails … fails
20
+ * naively when fields carry momentum`: those three lines are Newton's
21
+ * second, first and third laws and nothing else.
22
+ * - `'partial'` — the lines pin a FAMILY but not the member. Entry 7 is a
23
+ * Maxwell equation (the line distinguishes it from *"the full Maxwell
24
+ * system"*, which is a hidden node — `never from 7 alone`), but which of the
25
+ * four it is, is not recoverable. Entry 5 is read here as `E = mc²`; see
26
+ * {@link POSTER_5_IDENTIFICATION_NOTE}.
27
+ * - `'unidentified'` — entries 3 and 14, which `ROADMAP.md` names exactly
28
+ * once, in `3, 14 → * association only`. Nothing there identifies them. They
29
+ * are recorded as placeholders WITH THEIR NUMBERS and no physics, because a
30
+ * plausible guess would be uncheckable, and an honest gap beats it.
31
+ *
32
+ * **The edges do not depend on any of this.** Every record in
33
+ * `./derivations.ts` and `./associations.ts` references entries by NUMBER, so
34
+ * a mis-identified NAME cannot corrupt an edge type. That separation is
35
+ * deliberate: the numbers come from a stated source, the names are an
36
+ * inference over it, and only one of them is load-bearing.
37
+ *
38
+ * ## `ast?` is absent everywhere here, on purpose
39
+ *
40
+ * `statement.ts` §1 already argues it: the hidden nodes are valuable because
41
+ * they are NAMED and LINKED, not evaluable, and requiring an `ast` would force
42
+ * a fabricated encoding. The same holds for the sixteen — this module records
43
+ * poster claims, not evaluable equations — so every statement here carries an
44
+ * honest `sourceExpression` and no `ast`, and {@link buildPosterRegistry}
45
+ * refuses one that carries an `ast` it cannot have earned.
46
+ *
47
+ * Pure: no I/O. Imports `../statement.js` and `../model.js` types only, so
48
+ * this module is a leaf under `src/atlas/` and closes no cycle.
49
+ *
50
+ * @module atlas/poster/statements
51
+ */
52
+ import type { Statement, StatementId } from '../statement.js';
53
+ import type { ModelId } from '../model.js';
54
+ /**
55
+ * How firmly an entry's IDENTITY is pinned by a source in this repo.
56
+ *
57
+ * @internal
58
+ */
59
+ export type Identification = 'derived' | 'partial' | 'unidentified';
60
+ /**
61
+ * The `ModelId` every poster statement carries.
62
+ *
63
+ * Phase 3 records a `Model` for the nine oscillator models and for nothing
64
+ * else. A poster entry has no state space, dynamics or parameter list in this
65
+ * repo, so every per-entry model id available here would be invented — and an
66
+ * invented `'model-newtonian-mechanics'` would read, to the next sprint,
67
+ * exactly like a model someone recorded.
68
+ *
69
+ * One shared sentinel instead, which says what is true: no model is recorded.
70
+ * `tests/atlas/poster-statements.test.ts` pins that no poster statement claims
71
+ * an oscillator model id.
72
+ *
73
+ * @internal
74
+ */
75
+ export declare const POSTER_MODEL_UNRECORDED: ModelId;
76
+ /** What `3, 14 → *` puts in `sourceExpression`. Never a guess. @internal */
77
+ export declare const UNIDENTIFIED = "UNIDENTIFIED";
78
+ /**
79
+ * Why entry 5 is `'partial'` and not `'derived'`.
80
+ *
81
+ * Two edge lines constrain it and they pull in different directions.
82
+ * `16 → 5, 10` is an approximation in `v/c` *"needing `E = γmc²`, `p = γmv`,
83
+ * `F = dp/dt`"*, which reads as `E = mc²` reached from `E = γmc²`.
84
+ * `5, 16 → 8 constrain but do not determine` is, in the usual telling, the
85
+ * Newtonian-limit-plus-special-relativity constraint on the field equations,
86
+ * which would make 5 Newton's law of universal gravitation.
87
+ *
88
+ * It cannot be both, and `8 → 12` — approximation then *"restriction to a
89
+ * point source"* — already lands on universal gravitation at 12. Two entries
90
+ * cannot be the same law, so 5 is read as `E = mc²` here. The reading is
91
+ * RECORDED rather than asserted: the entry stays `'partial'`, and no edge
92
+ * depends on it, because every edge references 5 by number.
93
+ *
94
+ * @internal
95
+ */
96
+ export declare const POSTER_5_IDENTIFICATION_NOTE: string;
97
+ /**
98
+ * One of the sixteen, with its number and how firmly its identity is pinned.
99
+ *
100
+ * @internal
101
+ */
102
+ export interface PosterEntry {
103
+ /** 1–16, as every `ROADMAP.md` Phase 3 edge line references it. */
104
+ readonly number: number;
105
+ readonly statement: Statement;
106
+ readonly identification: Identification;
107
+ /** Required when `identification !== 'derived'`: what is unresolved, and why. */
108
+ readonly note?: string;
109
+ }
110
+ /**
111
+ * The sixteen poster entries, in poster order.
112
+ *
113
+ * Every `context.assumptions` is non-empty. Where `ROADMAP.md` states the
114
+ * qualification, it is used verbatim in substance: entry 11's *"fields carry
115
+ * no momentum"* (and the matching `excludes`, which is the one genuinely
116
+ * reachable context refusal in this data — see `./derivations.ts`), entry
117
+ * 13's `σ > 0`. Where it does not, the assumption is the standard statement
118
+ * of the entry's own validity and nothing more; none of them adds a claim.
119
+ *
120
+ * @internal
121
+ */
122
+ export declare const POSTER_ENTRIES: readonly PosterEntry[];
123
+ /**
124
+ * The five hidden supporting nodes, named by `ROADMAP.md` Phase 3 and by no
125
+ * other source.
126
+ *
127
+ * They are the deliverable precisely as named — `docs/planning/Atlas-Phase-3-Design.md`
128
+ * §8 puts *"evaluating hidden supporting nodes"* explicitly out of scope — so
129
+ * each carries a prose `sourceExpression` and no `ast`.
130
+ *
131
+ * `statement-lorentz-group` is what the `7 ↔ 16` line calls *"spacetime
132
+ * structure"* in the hyperedge `{full Maxwell system, spacetime structure} →
133
+ * 16`. That identification is an inference: `ROADMAP.md` names exactly five
134
+ * hidden nodes and the Lorentz group is the only one of the five that can
135
+ * BE spacetime structure. It is recorded here rather than silently assumed,
136
+ * and `./derivations.ts` repeats it in the hyperedge's side conditions.
137
+ *
138
+ * @internal
139
+ */
140
+ export declare const HIDDEN_NODES: readonly Statement[];
141
+ /**
142
+ * The statements the poster's edges CONCLUDE in that are neither a numbered
143
+ * entry nor a hidden node.
144
+ *
145
+ * All three are named by `ROADMAP.md` Phase 3: *"`11 → momentum
146
+ * conservation`"*, *"the field-inclusive version"*, *"`1 ↔ energy
147
+ * conservation`"*. Nothing here is added beyond those names.
148
+ *
149
+ * The two momentum statements are SEPARATE records because the line says the
150
+ * particle version *"fails naively when fields carry momentum"*. One record
151
+ * carrying both readings would erase exactly the distinction the line draws,
152
+ * and it is the distinction that makes entry 11's `excludes` bite.
153
+ *
154
+ * @internal
155
+ */
156
+ export declare const SUPPORTING_STATEMENTS: readonly Statement[];
157
+ /** Every statement this poster index defines, in a stable order. @internal */
158
+ export declare const POSTER_ALL_STATEMENTS: readonly Statement[];
159
+ /** Thrown by {@link buildPosterRegistry}. @internal */
160
+ export declare class PosterStatementError extends Error {
161
+ constructor(message: string);
162
+ }
163
+ /**
164
+ * The registry `makeDerivation` and `statementContextUnion` resolve against,
165
+ * built through four checks.
166
+ *
167
+ * The checks run HERE, at construction, rather than only in a test, because
168
+ * `./derivations.ts` builds its records against this registry at module load:
169
+ * a defect that reaches the registry reaches every derivation before any test
170
+ * has a chance to look.
171
+ *
172
+ * 1. **No duplicate id.** A later duplicate would silently replace an earlier
173
+ * statement in the map, and the derivation that consumed it would carry the
174
+ * wrong context with no symptom.
175
+ * 2. **Non-empty `assumptions`.** The S3.3 requirement, and the reason a
176
+ * context can refuse at all: an empty one pools with anything.
177
+ * 3. **No `ast`.** Nothing in this module is evaluable (see the module note);
178
+ * an `ast` here could only have been fabricated.
179
+ * 4. **A non-`'derived'` entry states its `note`.** An unidentified entry
180
+ * without its reason is indistinguishable from an oversight.
181
+ *
182
+ * The two arguments exist so a TEST can drive these four checks with a
183
+ * defective index through THIS code path rather than a copy of it. A test that
184
+ * reimplements a guard in order to break it proves only that the copy works,
185
+ * which is the vacuous-pass shape the design note names; the copy and the
186
+ * original then drift with nothing reporting it.
187
+ *
188
+ * @throws PosterStatementError on any of the four.
189
+ * @internal
190
+ */
191
+ export declare function buildPosterRegistry(statements?: readonly Statement[], entries?: readonly PosterEntry[]): ReadonlyMap<StatementId, Statement>;
192
+ /** The built registry. @internal */
193
+ export declare const POSTER_REGISTRY: ReadonlyMap<StatementId, Statement>;
194
+ /** The entry with this number. @throws RangeError when there is none. @internal */
195
+ export declare function posterEntry(number: number): PosterEntry;
196
+ /** The statement id of entry `number` — `posterId(9) === 'poster-9'`. @internal */
197
+ export declare function posterId(number: number): StatementId;
198
+ //# sourceMappingURL=statements.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statements.d.ts","sourceRoot":"","sources":["../../../src/atlas/poster/statements.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AAEH,OAAO,KAAK,EAAW,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,cAAc,CAAC;AAEpE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,uBAAuB,EAAE,OAAmC,CAAC;AAE1E,4EAA4E;AAC5E,eAAO,MAAM,YAAY,iBAAiB,CAAC;AAE3C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,4BAA4B,QAGkD,CAAC;AAE5F;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,cAAc,EAAE,cAAc,CAAC;IACxC,iFAAiF;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAiCD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,cAAc,EAAE,SAAS,WAAW,EAgJhD,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,YAAY,EAAE,SAAS,SAAS,EA2D5C,CAAC;AAEF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,qBAAqB,EAAE,SAAS,SAAS,EAmCrD,CAAC;AAEF,8EAA8E;AAC9E,eAAO,MAAM,qBAAqB,EAAE,SAAS,SAAS,EAIrD,CAAC;AAEF,uDAAuD;AACvD,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,YAAY,OAAO,EAAE,MAAM,EAG1B;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,GAAE,SAAS,SAAS,EAA0B,EACxD,OAAO,GAAE,SAAS,WAAW,EAAmB,GAC/C,WAAW,CAAC,WAAW,EAAE,SAAS,CAAC,CA6BrC;AAED,oCAAoC;AACpC,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,WAAW,EAAE,SAAS,CAAyB,CAAC;AAE1F,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAMvD;AAED,mFAAmF;AACnF,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,WAAW,CAEpD"}