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,225 @@
1
+ /**
2
+ * Atlas Phase 1, S1.3 — evidence tags, DERIVED AT READ TIME.
3
+ *
4
+ * Design note: `docs/planning/Atlas-Phase-1-Design.md` §3 and §4.
5
+ *
6
+ * **The contract of this module: it has no write path.** No record stores an
7
+ * evidence set; every tag is computed from the artifacts a record actually
8
+ * carries, each time it is asked for. A tag is emitted ONLY when the artifact
9
+ * it names is present and passing. There is no default-true tag, no tag
10
+ * derived from another tag, no tag derived from `reviewStatus`, and no tag
11
+ * derived from prose. A record carrying no passing witness derives exactly
12
+ * `{'proposed'}`.
13
+ *
14
+ * ## The empty-set trap (design note §3, Adam A1 RED — confirmed by execution)
15
+ *
16
+ * `convention-checked` is the ONLY rule in the table whose quantifier is
17
+ * universal (`every`). Written as "`conventions` is present AND every declared
18
+ * field is consumed by a witness", it hands the tag to a record with ZERO
19
+ * witnesses, because `conventions = {}` declares nothing and `[].every(…)` is
20
+ * vacuously true. {@link deriveEvidence} therefore requires a NON-EMPTY
21
+ * declaration before the universal runs, and
22
+ * `tests/atlas/derive-evidence.test.ts` pins the empty-object case.
23
+ *
24
+ * **The general rule, for anything added here later:** a universal quantifier
25
+ * in a tag derivation must be paired with a non-emptiness check, or the tag is
26
+ * free. The other rules are existentials (`some`), which are false on the
27
+ * empty set and therefore safe.
28
+ *
29
+ * ## What "passing" means, and why the caller supplies it
30
+ *
31
+ * `Witness` records an id and the test file that runs it; nothing on the
32
+ * record says whether that test passed. Proving it is a filesystem act (see
33
+ * `tests/atlas/evidence-rule.test.ts`, which matches witness ids against test
34
+ * titles), and this module is pure. So the set of passing witness ids is an
35
+ * ARGUMENT, and it is REQUIRED — {@link NO_PASSING_WITNESSES} must be passed
36
+ * explicitly when nothing is verified.
37
+ *
38
+ * It used to DEFAULT to empty, which sounds conservative and was in fact a
39
+ * defect (Eve E1 RED, confirmed by execution). Defaulting the other way, to
40
+ * "all", would have been the free-tag defect above in a second location — but
41
+ * defaulting to empty created the mirror-image failure: a forgotten argument
42
+ * produced an answer identical to a real negative. A catalog-wide check written
43
+ * that way could only ever report "no row gains evidence", whatever the rows
44
+ * held, so it could not fail. Requiring the argument makes a vacuous result a
45
+ * STATED choice, and `tests/atlas/coverage.test.ts` now carries a positive
46
+ * control so that a negative result carries information.
47
+ *
48
+ * @module atlas/derive-evidence
49
+ * @internal
50
+ */
51
+ /**
52
+ * A row's counterexamples INCLUDING the one its rejection constitutes.
53
+ *
54
+ * ROADMAP §7 Phase 1 asks for "a `RejectedBridgeAdjudication` ⇒ `contradicted`
55
+ * with the counterexample LINKED". The linking half is what matters and was
56
+ * missing: BE-35 had a counterexample written by hand and earned `contradicted`
57
+ * honestly, while BE-28, BE-29, BE-32 and BE-40 had none — and an earlier rule
58
+ * papered over that by FORCING `contradicted` onto every rejected row, which
59
+ * manufactured a refutation from nothing (Eve E1).
60
+ *
61
+ * This is the linking done properly. The rejection's own `reason` IS the
62
+ * counterexample: a row rejected for being single-regime is refuted AS A BRIDGE
63
+ * by exactly that argument. Projecting it means `contradicted` is then EARNED
64
+ * through the ordinary derivation rather than asserted by a special case.
65
+ *
66
+ * **It is a projection, not a copy.** The reason string is never duplicated into
67
+ * a catalog row; `bridges/rejected.ts` remains its single source, which is what
68
+ * the ROADMAP means by "cross-linked ... rather than duplicating it". The caller
69
+ * supplies the rejection, so this module still owns no view of WHICH ids are
70
+ * rejected.
71
+ *
72
+ * @internal
73
+ */
74
+ export function counterexamplesWithRejection(record, rejection) {
75
+ const own = record.counterexamples ?? [];
76
+ if (rejection === undefined)
77
+ return own;
78
+ // Do not double-count. A row may ALREADY cite the rejection by hand — BE-35
79
+ // does, with `witness: 'src/bridges/rejected.ts - REJECTED_BRIDGE_ADJUDICATIONS,
80
+ // beId 35'`. My first predicate matched only the machine key `rejection:<id>`
81
+ // and so missed it, appending the SAME argument a second time in different
82
+ // words, which is exactly the duplication the ROADMAP says to avoid. The
83
+ // predicate therefore accepts either form: the machine key, or any witness
84
+ // that names the rejection registry together with this beId.
85
+ const key = `rejection:${rejection.beId}`;
86
+ const alreadyLinked = own.some((c) => {
87
+ const w = c.witness ?? '';
88
+ if (w === key)
89
+ return true;
90
+ return w.includes('REJECTED_BRIDGE_ADJUDICATIONS') && w.includes(String(rejection.beId));
91
+ });
92
+ if (alreadyLinked)
93
+ return own;
94
+ return [
95
+ ...own,
96
+ { description: rejection.reason, witness: `rejection:${rejection.beId}` },
97
+ ];
98
+ }
99
+ /**
100
+ * The empty passing set, for a caller that genuinely has nothing marked passing.
101
+ *
102
+ * ⚠ This is EXPORTED and must be passed EXPLICITLY. It used to be a default
103
+ * parameter value, and that was a defect found by post-implementation review
104
+ * (Eve, E1) and confirmed by execution: a record carrying three passing
105
+ * witnesses and a consumed convention derived `{'proposed'}` under the default —
106
+ * byte-identical to an empty record. A caller who simply forgot the argument got
107
+ * an answer indistinguishable from a real negative.
108
+ *
109
+ * That made a catalog-wide check VACUOUS rather than reassuring. "No row gains
110
+ * evidence" was the only outcome the call could produce, whatever the rows
111
+ * contained, so the check could not fail and proved nothing. Requiring the
112
+ * argument forces the caller to STATE which witnesses were verified, which is
113
+ * exactly the decision that must never be implicit.
114
+ */
115
+ export const NO_PASSING_WITNESSES = new Set();
116
+ /** The fields `Conventions` may declare. Kept in one place so the check is total. */
117
+ const CONVENTION_FIELDS = [
118
+ 'heatWorkSign',
119
+ 'metricSignature',
120
+ 'fourierNormalization',
121
+ 'unitSystem',
122
+ 'capacitorChargeSign',
123
+ ];
124
+ /** The convention fields a record actually declares (a `undefined` value declares nothing). */
125
+ function declaredConventionFields(conventions) {
126
+ if (conventions === undefined)
127
+ return [];
128
+ return CONVENTION_FIELDS.filter((field) => conventions[field] !== undefined);
129
+ }
130
+ /**
131
+ * Derive the evidence set of one record.
132
+ *
133
+ * @param record - the artifacts the record carries.
134
+ * @param passingWitnessIds - ids of witnesses VERIFIED to pass. REQUIRED: pass
135
+ * {@link NO_PASSING_WITNESSES} explicitly when nothing is verified, so that a
136
+ * vacuous result is a stated choice rather than a forgotten argument.
137
+ * @returns a fresh set; never cached, never stored.
138
+ * @internal
139
+ */
140
+ export function deriveEvidence(record, passingWitnessIds) {
141
+ const tags = new Set();
142
+ const passing = (record.witnesses ?? []).filter((w) => passingWitnessIds.has(w.id));
143
+ // Existentials over the passing witnesses — false on the empty set.
144
+ // `symbolically-checked` has exactly ONE derivation: a passing symbolic
145
+ // witness. Which symbolic witnesses pass is DEFINED by the committed results
146
+ // artifact (`data/atlas/witness-results.json`, Phase 4 §3) — the caller feeds
147
+ // it in through `passingWitnessIds` via `artifactPassingWitnessIds`.
148
+ if (passing.some((w) => w.kind === 'dimensional'))
149
+ tags.add('dimension-checked');
150
+ if (passing.some((w) => w.kind === 'symbolic'))
151
+ tags.add('symbolically-checked');
152
+ // `formally-proved` iff a formal reference exists AND someone checked that
153
+ // its statement says what the record says. `'unreviewed'` records a reference
154
+ // without earning the tag — a proof of the wrong statement proves nothing.
155
+ if (record.formalRef !== undefined && record.formalRef.fidelity !== 'unreviewed') {
156
+ tags.add('formally-proved');
157
+ }
158
+ if (passing.some((w) => w.kind === 'numeric'))
159
+ tags.add('numerically-supported');
160
+ // The ONE universal in the table — guarded by non-emptiness. See §3 above.
161
+ const declared = declaredConventionFields(record.conventions);
162
+ if (declared.length > 0 &&
163
+ declared.every((field) => passing.some((w) => (w.consumes ?? []).includes(field)))) {
164
+ tags.add('convention-checked');
165
+ }
166
+ // Existential: a counterexample with no resolution.
167
+ if ((record.counterexamples ?? []).some((c) => c.resolvedBy === undefined || c.resolvedBy === '')) {
168
+ tags.add('contradicted');
169
+ }
170
+ if (tags.size === 0)
171
+ tags.add('proposed');
172
+ return tags;
173
+ }
174
+ /**
175
+ * Derive the evidence set of a catalog row, under the adjudication precedence
176
+ * of design note §4. The verdict is supplied by the caller — it comes from
177
+ * `adjudicateBridgeEntry`, which owns the rejected-id registry
178
+ * (`REJECTED_BRIDGE_IDS`). Reading that registry here would make this file a
179
+ * second source of truth about which ids are rejected.
180
+ *
181
+ * | Verdict | Derives |
182
+ * |---|---|
183
+ * | `'not-a-bridge'` | {@link deriveEvidence} runs normally — see below |
184
+ * | `'unadjudicated'` | `{'proposed'}` only — never a refutation, never support |
185
+ * | `'bridge'` | {@link deriveEvidence} runs normally |
186
+ *
187
+ * ## ⚠ `'not-a-bridge'` no longer forces `'contradicted'` (Eve E1, 2026-09-21)
188
+ *
189
+ * It used to, "regardless of witnesses", and that rule — written by me in design
190
+ * note §4 — **violated §3 of the same document.** `contradicted` means THE CLAIM
191
+ * IS REFUTED. `not-a-bridge` means THE ROW IS NOT A REGIME-CROSSING BRIDGE.
192
+ * Those are different assertions about different things, and conflating them made
193
+ * the library report BE-35 as `status: 'established'` and `evidence:
194
+ * {'contradicted'}` in the same breath — from which a reader cannot tell whether
195
+ * the equation is a true in-regime identity the bridge graph ignores, or a
196
+ * refuted statement.
197
+ *
198
+ * Measured when the rule was removed: of the five rejected rows, only **BE-35**
199
+ * carries an actual counterexample, and it derives `{'contradicted'}` NATURALLY
200
+ * through the normal path. **BE-28, BE-29, BE-32 and BE-40 carry none** — the old
201
+ * rule was manufacturing a refutation for four rows with no refuting artifact
202
+ * whatsoever. That is exactly what §3 forbids: a tag is emitted only when the
203
+ * artifact it names is present and passing.
204
+ *
205
+ * Membership already has a single owner — `adjudicateBridgeEntry` — and it does
206
+ * not need restating in the evidence vocabulary. Removing the case leaves each
207
+ * fact with exactly one source, which is what §4 was trying to achieve and this
208
+ * rule was quietly undermining.
209
+ *
210
+ * @internal
211
+ */
212
+ export function deriveEvidenceForVerdict(verdict, record, passingWitnessIds) {
213
+ switch (verdict) {
214
+ // 'not-a-bridge' falls through to the normal derivation on purpose: a row
215
+ // is refuted by a COUNTEREXAMPLE, not by failing a membership test. See the
216
+ // block comment above for the measurement that forced this change.
217
+ case 'not-a-bridge':
218
+ return deriveEvidence(record, passingWitnessIds);
219
+ case 'unadjudicated':
220
+ return new Set(['proposed']);
221
+ case 'bridge':
222
+ return deriveEvidence(record, passingWitnessIds);
223
+ }
224
+ }
225
+ //# sourceMappingURL=derive-evidence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derive-evidence.js","sourceRoot":"","sources":["../../src/atlas/derive-evidence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Atlas Phase 4 — the five diffusion-family bridges added to close Sprint 4's
3
+ * "≥ 20 bridges" exit criterion.
4
+ *
5
+ * Design note: `docs/planning/Atlas-Phase-4-Design.md` §4 (Sprint 4 closure).
6
+ *
7
+ * | Bridge | Relation | Witnesses |
8
+ * |---|---|---|
9
+ * | Langevin → Fick | `coarse-graining` | WD4 (convergence), WD4b (ballistic regime) |
10
+ * | Langevin + Stokes drag → Fick | `derivation`, **hyperedge** | WD5 (canonical + water), WD5s (CAS) |
11
+ * | telegraph → Fick | `approximation` (singular, τ → 0) | WD6 (convergence), WD6b (oscillatory modes) |
12
+ * | telegraph → 1-D wave | `approximation` (τDq² → ∞, t ≪ τ) | WD7 (convergence) |
13
+ * | heat → Laplace | `restriction` (steady state) | WD8 (convergence in time) |
14
+ *
15
+ * Every regime inequality keys a `PiGroup.formula` derived from the dimension
16
+ * matrix. Every `delta` is the EXACT error at its domain edge; every error
17
+ * function used for it is monotone on the domain, so the edge value is the
18
+ * supremum.
19
+ *
20
+ * @module atlas/diffusion/bridges-closure
21
+ */
22
+ import type { AtlasBridge } from '../types.js';
23
+ /** τ_p/t ceiling of the Langevin → Fick regime: WD4's fine resolution, t = 100 τ_p. @internal */
24
+ export declare const LANGEVIN_MAX_TAU_RATIO = 0.01;
25
+ /** ε = τDq² ceiling of the telegraph → Fick domain. @internal */
26
+ export declare const TELEGRAPH_FICK_MAX_EPS = 0.05;
27
+ /** ε = τDq² floor of the telegraph → wave domain. @internal */
28
+ export declare const TELEGRAPH_WAVE_MIN_EPS = 25;
29
+ /** Fourier-number floor of the steady-state restriction. @internal */
30
+ export declare const STEADY_MIN_FOURIER = 1;
31
+ /** Bridge: Langevin → Fick, the Einstein coarse-graining D = k_BT/γ. @internal */
32
+ export declare const BRIDGE_LANGEVIN_DIFFUSION: AtlasBridge;
33
+ /**
34
+ * Bridge: Langevin + Stokes drag → Fick with the Stokes–Einstein coefficient.
35
+ *
36
+ * A HYPEREDGE: the Langevin model supplies D = k_BT/γ with γ free; Stokes drag
37
+ * supplies γ = 6πηa for a sphere. Neither alone gives D in terms of the fluid.
38
+ *
39
+ * @internal
40
+ */
41
+ export declare const BRIDGE_STOKES_EINSTEIN: AtlasBridge;
42
+ /**
43
+ * Bridge: telegraph → Fick, the SINGULAR limit τ → 0.
44
+ *
45
+ * Singular because the highest time derivative is lost: the telegraph equation
46
+ * needs two initial conditions and diffusion takes one, so a fast mode
47
+ * `e^{−t/τ}` forms an initial layer. The bound therefore holds only AFTER that
48
+ * layer, and the machine horizon has a LOWER edge as well as an upper one.
49
+ *
50
+ * @internal
51
+ */
52
+ export declare const BRIDGE_TELEGRAPH_DIFFUSION: AtlasBridge;
53
+ /**
54
+ * Bridge: telegraph → 1-D wave, for strongly underdamped modes over short times.
55
+ *
56
+ * @internal
57
+ */
58
+ export declare const BRIDGE_TELEGRAPH_WAVE: AtlasBridge;
59
+ /** Bridge: heat → Laplace, the steady-state restriction. @internal */
60
+ export declare const BRIDGE_HEAT_LAPLACE: AtlasBridge;
61
+ /** The diffusion-family closure bridges. @internal */
62
+ export declare const DIFFUSION_CLOSURE_BRIDGES: readonly AtlasBridge[];
63
+ //# sourceMappingURL=bridges-closure.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges-closure.d.ts","sourceRoot":"","sources":["../../../src/atlas/diffusion/bridges-closure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAMH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS/C,iGAAiG;AACjG,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,iEAAiE;AACjE,eAAO,MAAM,sBAAsB,OAAO,CAAC;AAE3C,+DAA+D;AAC/D,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,sEAAsE;AACtE,eAAO,MAAM,kBAAkB,IAAI,CAAC;AAWpC,kFAAkF;AAClF,eAAO,MAAM,yBAAyB,EAAE,WA0DvC,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAyCpC,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,0BAA0B,EAAE,WAyExC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,WAiDnC,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,mBAAmB,EAAE,WAsCjC,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,EAAE,SAAS,WAAW,EAM3D,CAAC"}
@@ -0,0 +1,324 @@
1
+ /**
2
+ * Atlas Phase 4 — the five diffusion-family bridges added to close Sprint 4's
3
+ * "≥ 20 bridges" exit criterion.
4
+ *
5
+ * Design note: `docs/planning/Atlas-Phase-4-Design.md` §4 (Sprint 4 closure).
6
+ *
7
+ * | Bridge | Relation | Witnesses |
8
+ * |---|---|---|
9
+ * | Langevin → Fick | `coarse-graining` | WD4 (convergence), WD4b (ballistic regime) |
10
+ * | Langevin + Stokes drag → Fick | `derivation`, **hyperedge** | WD5 (canonical + water), WD5s (CAS) |
11
+ * | telegraph → Fick | `approximation` (singular, τ → 0) | WD6 (convergence), WD6b (oscillatory modes) |
12
+ * | telegraph → 1-D wave | `approximation` (τDq² → ∞, t ≪ τ) | WD7 (convergence) |
13
+ * | heat → Laplace | `restriction` (steady state) | WD8 (convergence in time) |
14
+ *
15
+ * Every regime inequality keys a `PiGroup.formula` derived from the dimension
16
+ * matrix. Every `delta` is the EXACT error at its domain edge; every error
17
+ * function used for it is monotone on the domain, so the edge value is the
18
+ * supremum.
19
+ *
20
+ * @module atlas/diffusion/bridges-closure
21
+ */
22
+ import { ENERGY, LENGTH, MASS, TIME, VELOCITY } from '../../dimensional/types.js';
23
+ import { makeApproximation } from '../oscillators/bridges-limits.js';
24
+ import { DAMPING } from '../oscillators/dimensions.js';
25
+ import { deriveRegimeGroups } from '../regime.js';
26
+ import { WAVENUMBER } from '../waves/models.js';
27
+ import { DENSITY, DIFFUSIVITY, SPECIFIC_HEAT, THERMAL_CONDUCTIVITY } from './dimensions.js';
28
+ import { DIFFUSION_FAMILY_NAME, VISCOSITY } from './models.js';
29
+ import { telegraphSlowRateRatio, telegraphWaveFrequencyRatio } from './numerics.js';
30
+ const TEST = 'tests/atlas/closure.test.ts';
31
+ const WITNESS_RESULTS_TEST = 'tests/atlas/witness-results.test.ts';
32
+ /** τ_p/t ceiling of the Langevin → Fick regime: WD4's fine resolution, t = 100 τ_p. @internal */
33
+ export const LANGEVIN_MAX_TAU_RATIO = 0.01;
34
+ /** ε = τDq² ceiling of the telegraph → Fick domain. @internal */
35
+ export const TELEGRAPH_FICK_MAX_EPS = 0.05;
36
+ /** ε = τDq² floor of the telegraph → wave domain. @internal */
37
+ export const TELEGRAPH_WAVE_MIN_EPS = 25;
38
+ /** Fourier-number floor of the steady-state restriction. @internal */
39
+ export const STEADY_MIN_FOURIER = 1;
40
+ const regime = (parameters, inequalities) => ({
41
+ family: DIFFUSION_FAMILY_NAME,
42
+ inequalities,
43
+ groupDefinitions: deriveRegimeGroups(DIFFUSION_FAMILY_NAME, parameters, []),
44
+ });
45
+ /** Bridge: Langevin → Fick, the Einstein coarse-graining D = k_BT/γ. @internal */
46
+ export const BRIDGE_LANGEVIN_DIFFUSION = {
47
+ id: 'ab-langevin-diffusion',
48
+ relation: 'coarse-graining',
49
+ premises: ['model-langevin'],
50
+ conclusion: 'model-fick',
51
+ transformation: 'average over times t ≫ τ_p = m/γ: ⟨x²⟩ → 2Dt with D = k_B T/γ (Einstein)',
52
+ preserves: ['the long-time mean-square displacement', 'the equilibrium velocity variance k_B T/m'],
53
+ doesNotPreserve: [
54
+ 'the velocity as a state variable',
55
+ 'the ballistic regime t ≲ τ_p, where ⟨x²⟩ ≈ (k_B T/m) t²',
56
+ 'the momentum relaxation time τ_p as an independent scale',
57
+ ],
58
+ sideConditions: ['overdamped observation times: τ_p/t ≪ 1', 'white thermal noise, fluctuation–dissipation 2γk_BT'],
59
+ regime: regime([
60
+ { name: 'm', dim: MASS },
61
+ { name: 'gamma', dim: DAMPING },
62
+ { name: 'kT', dim: ENERGY },
63
+ { name: 'D', dim: DIFFUSIVITY },
64
+ { name: 't', dim: TIME },
65
+ ], [
66
+ {
67
+ group: 'm · gamma^-1 · t^-1',
68
+ op: '<=',
69
+ bound: LANGEVIN_MAX_TAU_RATIO,
70
+ alias: 'τ_p/t ≪ 1 (machine form ≤ 0.01)',
71
+ },
72
+ ]),
73
+ counterexamples: [
74
+ {
75
+ description: 'At t = 0.1 τ_p the Langevin mean-square displacement is 0.048 of 2Dt: the particle is ' +
76
+ 'still ballistic, ⟨x²⟩ ≈ (k_BT/m)t², and the diffusion model does not describe it.',
77
+ witness: 'WD4b',
78
+ },
79
+ ],
80
+ evidence: new Set(['proposed', 'numerically-supported']),
81
+ witnesses: [
82
+ {
83
+ id: 'WD4',
84
+ kind: 'numeric',
85
+ test: TEST,
86
+ tolerance: '⟨x²⟩/(2Dt) within 0.02 of 1 at t = 100 τ_p, from the Langevin moment equations by RK4',
87
+ },
88
+ {
89
+ id: 'WD4b',
90
+ kind: 'numeric',
91
+ test: TEST,
92
+ tolerance: '⟨x²⟩/(2Dt) = 0.0484 at t = 0.1 τ_p',
93
+ },
94
+ ],
95
+ citations: [
96
+ 'Uhlenbeck & Ornstein, Phys. Rev. 36 (1930) 823 - On the theory of the Brownian motion',
97
+ 'Einstein, Ann. Phys. 17 (1905) 549 - the relation D = k_B T/γ',
98
+ ],
99
+ reviewStatus: 'proposed',
100
+ };
101
+ /**
102
+ * Bridge: Langevin + Stokes drag → Fick with the Stokes–Einstein coefficient.
103
+ *
104
+ * A HYPEREDGE: the Langevin model supplies D = k_BT/γ with γ free; Stokes drag
105
+ * supplies γ = 6πηa for a sphere. Neither alone gives D in terms of the fluid.
106
+ *
107
+ * @internal
108
+ */
109
+ export const BRIDGE_STOKES_EINSTEIN = {
110
+ id: 'ab-stokes-einstein',
111
+ relation: 'derivation',
112
+ premises: ['model-langevin', 'model-stokes-drag'],
113
+ conclusion: 'model-fick',
114
+ transformation: 'substitute γ = 6πηa into D = k_B T/γ: D = k_B T/(6πηa)',
115
+ preserves: ['the long-time diffusion coefficient of a sphere'],
116
+ doesNotPreserve: ['the particle mass (it drops out)', 'the shape beyond the radius a'],
117
+ sideConditions: ['creeping flow around the sphere, Re ≪ 1', 'no-slip boundary', 'overdamped times t ≫ m/γ'],
118
+ regime: regime([
119
+ { name: 'kT', dim: ENERGY },
120
+ { name: 'gamma', dim: DAMPING },
121
+ { name: 'eta', dim: VISCOSITY },
122
+ { name: 'a', dim: LENGTH },
123
+ { name: 'D', dim: DIFFUSIVITY },
124
+ ], []),
125
+ counterexamples: [],
126
+ evidence: new Set(['proposed', 'numerically-supported']),
127
+ witnesses: [
128
+ {
129
+ id: 'WD5',
130
+ kind: 'numeric',
131
+ test: TEST,
132
+ tolerance: 'agrees with CE-stokes-einstein to 1e-12 relative; a 1 µm sphere in water at 20 °C gives D = 4.29e-13 m²/s',
133
+ },
134
+ {
135
+ id: 'WD5s',
136
+ kind: 'symbolic',
137
+ test: WITNESS_RESULTS_TEST,
138
+ tolerance: 'CAS: k_BT/γ under γ ↦ 6πηa minus k_BT/(6πηa) simplifies to literal 0',
139
+ },
140
+ ],
141
+ citations: [
142
+ 'Einstein, Ann. Phys. 17 (1905) 549 - Brownian motion of a sphere, D = k_B T/(6πηa)',
143
+ 'Stokes, Trans. Camb. Phil. Soc. 9 (1851) 8 - the drag on a sphere in creeping flow',
144
+ ],
145
+ reviewStatus: 'proposed',
146
+ };
147
+ /**
148
+ * Bridge: telegraph → Fick, the SINGULAR limit τ → 0.
149
+ *
150
+ * Singular because the highest time derivative is lost: the telegraph equation
151
+ * needs two initial conditions and diffusion takes one, so a fast mode
152
+ * `e^{−t/τ}` forms an initial layer. The bound therefore holds only AFTER that
153
+ * layer, and the machine horizon has a LOWER edge as well as an upper one.
154
+ *
155
+ * @internal
156
+ */
157
+ export const BRIDGE_TELEGRAPH_DIFFUSION = {
158
+ id: 'ab-telegraph-diffusion',
159
+ relation: 'approximation',
160
+ premises: ['model-telegraph'],
161
+ conclusion: 'model-fick',
162
+ transformation: 'drop τ u_tt: the slow mode decays at Dq²(1 + ε + 2ε² + …) → Dq², ε = τDq²',
163
+ preserves: ['the slow decay rate of each Fourier mode to O(ε)', 'the total amount ∫u dx'],
164
+ doesNotPreserve: [
165
+ 'the finite signal speed √(D/τ)',
166
+ 'the second initial condition u_t(x, 0)',
167
+ 'oscillatory modes, which exist for ε > 1/4',
168
+ ],
169
+ sideConditions: ['ε = τDq² ≤ 0.05', 'after the initial layer: t ≫ τ'],
170
+ bound: makeApproximation({
171
+ K: 1,
172
+ delta: telegraphSlowRateRatio(TELEGRAPH_FICK_MAX_EPS, 1, 1) - 1,
173
+ deltaAt: (p) => telegraphSlowRateRatio(p['tau'] ?? Number.NaN, p['D'] ?? Number.NaN, p['q'] ?? Number.NaN) - 1,
174
+ norm: 'relative error of the slow-mode decay rate of a Fourier mode',
175
+ domain: 'ε = τDq² ≤ 0.05',
176
+ horizon: 'τ ≪ t ≪ 1/(δ D q²): after the initial layer and before the decay-rate error accumulates; ' +
177
+ 'machine form 5τ < t < 0.1/(δ D q²)',
178
+ horizonHolds: (t, p) => {
179
+ const { tau, D, q } = p;
180
+ if (tau === undefined || D === undefined || q === undefined)
181
+ return false;
182
+ const delta = telegraphSlowRateRatio(tau, D, q) - 1;
183
+ if (!Number.isFinite(delta))
184
+ return false;
185
+ if (t <= 5 * tau)
186
+ return false;
187
+ return delta === 0 || t < 0.1 / (delta * D * q * q);
188
+ },
189
+ parameterRange: 'ε = τDq² ≤ 0.05',
190
+ limitCharacter: 'singular',
191
+ // A slow-mode decay-rate error. The horizon says that error accumulates,
192
+ // so time is not listed.
193
+ uniformity: ['slow-mode decay rate of one Fourier mode, for ε = τDq² ≤ 0.05'],
194
+ }),
195
+ regime: regime([
196
+ { name: 'tau', dim: TIME },
197
+ { name: 'D', dim: DIFFUSIVITY },
198
+ { name: 'q', dim: WAVENUMBER },
199
+ ], [{ group: 'tau · D · q^2', op: '<=', bound: TELEGRAPH_FICK_MAX_EPS, alias: 'ε = τDq² ≤ 0.05' }]),
200
+ counterexamples: [
201
+ {
202
+ description: 'At ε = τDq² = 1 the telegraph mode is OSCILLATORY (complex rate, NaN on the slow branch): ' +
203
+ 'no diffusion mode oscillates.',
204
+ witness: 'WD6b',
205
+ },
206
+ ],
207
+ evidence: new Set(['proposed', 'numerically-supported']),
208
+ witnesses: [
209
+ {
210
+ id: 'WD6',
211
+ kind: 'numeric',
212
+ test: TEST,
213
+ tolerance: 'slow rate / Dq² within 0.03 of 1 at τ = 0.025 (D = q = 1); error halves with τ',
214
+ },
215
+ {
216
+ id: 'WD6b',
217
+ kind: 'numeric',
218
+ test: TEST,
219
+ tolerance: 'no real slow rate at ε = 1',
220
+ },
221
+ ],
222
+ citations: [
223
+ 'Cattaneo, Atti Sem. Mat. Fis. Univ. Modena 3 (1948) 83 - heat conduction with a relaxation time',
224
+ 'Goldstein, Q. J. Mech. Appl. Math. 4 (1951) 129 - On diffusion by discontinuous movements, and on the telegraph equation',
225
+ ],
226
+ reviewStatus: 'proposed',
227
+ };
228
+ /**
229
+ * Bridge: telegraph → 1-D wave, for strongly underdamped modes over short times.
230
+ *
231
+ * @internal
232
+ */
233
+ export const BRIDGE_TELEGRAPH_WAVE = {
234
+ id: 'ab-telegraph-wave',
235
+ relation: 'approximation',
236
+ premises: ['model-telegraph'],
237
+ conclusion: 'model-wave-1d',
238
+ transformation: 'drop u_t: τ u_tt = D u_xx, a wave with c² = D/τ',
239
+ preserves: ['the signal speed √(D/τ)', 'the oscillation frequency to O(1/ε)'],
240
+ doesNotPreserve: ['damping: telegraph modes decay as e^{−t/(2τ)}', 'relaxation to diffusion at long times'],
241
+ sideConditions: ['ε = τDq² ≥ 25', 'short times t ≪ τ (the bound is not uniform in time)'],
242
+ bound: makeApproximation({
243
+ K: 1,
244
+ delta: 1 - telegraphWaveFrequencyRatio(TELEGRAPH_WAVE_MIN_EPS, 1, 1),
245
+ deltaAt: (p) => 1 - telegraphWaveFrequencyRatio(p['tau'] ?? Number.NaN, p['D'] ?? Number.NaN, p['q'] ?? Number.NaN),
246
+ norm: 'relative error of the oscillation frequency of a Fourier mode',
247
+ domain: 'ε = τDq² ≥ 25',
248
+ horizon: 't ≪ τ: before damping e^{−t/(2τ)} removes 10% of the amplitude; machine form t < 2τ ln(10/9)',
249
+ horizonHolds: (t, p) => {
250
+ const { tau } = p;
251
+ if (tau === undefined || !(tau > 0))
252
+ return false;
253
+ return t >= 0 && t < 2 * tau * Math.log(10 / 9);
254
+ },
255
+ parameterRange: 'ε = τDq² ≥ 25',
256
+ limitCharacter: 'regular',
257
+ // An oscillation-frequency error. The record says it is not uniform in time.
258
+ uniformity: ['oscillation frequency of one Fourier mode, for ε = τDq² ≥ 25'],
259
+ }),
260
+ regime: regime([
261
+ { name: 'tau', dim: TIME },
262
+ { name: 'D', dim: DIFFUSIVITY },
263
+ { name: 'q', dim: WAVENUMBER },
264
+ { name: 'c', dim: VELOCITY },
265
+ ], [{ group: 'tau · D · q^2', op: '>=', bound: TELEGRAPH_WAVE_MIN_EPS, alias: 'ε = τDq² ≥ 25' }]),
266
+ counterexamples: [],
267
+ evidence: new Set(['proposed', 'numerically-supported']),
268
+ witnesses: [
269
+ {
270
+ id: 'WD7',
271
+ kind: 'numeric',
272
+ test: TEST,
273
+ tolerance: 'frequency ratio within 3e-3 of 1 at ε = 50; error halves as ε doubles',
274
+ },
275
+ ],
276
+ citations: ['Goldstein, Q. J. Mech. Appl. Math. 4 (1951) 129 - On diffusion by discontinuous movements, and on the telegraph equation'],
277
+ reviewStatus: 'proposed',
278
+ };
279
+ /** Bridge: heat → Laplace, the steady-state restriction. @internal */
280
+ export const BRIDGE_HEAT_LAPLACE = {
281
+ id: 'ab-heat-laplace',
282
+ relation: 'restriction',
283
+ premises: ['model-heat'],
284
+ conclusion: 'model-laplace-1d',
285
+ transformation: '∂T/∂t = 0: κ T_xx = 0, T linear between the end temperatures',
286
+ preserves: ['the end temperatures', 'the steady heat flux κ(T_b − T_a)/ℓ'],
287
+ doesNotPreserve: ['the transient', 'ρ and c_p, which drop out of the steady state'],
288
+ sideConditions: ['fixed end temperatures', 'Fourier number αt/ℓ² ≥ 1 (transients decayed)'],
289
+ regime: regime([
290
+ { name: 'kappa', dim: THERMAL_CONDUCTIVITY },
291
+ { name: 'rho', dim: DENSITY },
292
+ { name: 'cp', dim: SPECIFIC_HEAT },
293
+ { name: 'ell', dim: LENGTH },
294
+ { name: 't', dim: TIME },
295
+ ], [
296
+ {
297
+ group: 'kappa · rho^-1 · cp^-1 · ell^-2 · t',
298
+ op: '>=',
299
+ bound: STEADY_MIN_FOURIER,
300
+ alias: 'Fo = αt/ℓ² ≥ 1',
301
+ },
302
+ ]),
303
+ counterexamples: [],
304
+ evidence: new Set(['proposed', 'numerically-supported']),
305
+ witnesses: [
306
+ {
307
+ id: 'WD8',
308
+ kind: 'numeric',
309
+ test: TEST,
310
+ tolerance: 'max deviation from the linear profile below 0.025 at αt/ℓ² = 0.4; shrinks with time',
311
+ },
312
+ ],
313
+ citations: ['Carslaw & Jaeger, Conduction of Heat in Solids - steady linear flow in a slab'],
314
+ reviewStatus: 'proposed',
315
+ };
316
+ /** The diffusion-family closure bridges. @internal */
317
+ export const DIFFUSION_CLOSURE_BRIDGES = [
318
+ BRIDGE_LANGEVIN_DIFFUSION,
319
+ BRIDGE_STOKES_EINSTEIN,
320
+ BRIDGE_TELEGRAPH_DIFFUSION,
321
+ BRIDGE_TELEGRAPH_WAVE,
322
+ BRIDGE_HEAT_LAPLACE,
323
+ ];
324
+ //# sourceMappingURL=bridges-closure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges-closure.js","sourceRoot":"","sources":["../../../src/atlas/diffusion/bridges-closure.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,eAAe,CAAC;AAEpF,MAAM,IAAI,GAAG,6BAA6B,CAAC;AAC3C,MAAM,oBAAoB,GAAG,qCAAqC,CAAC;AAEnE,iGAAiG;AACjG,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C,iEAAiE;AACjE,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C,+DAA+D;AAC/D,MAAM,CAAC,MAAM,sBAAsB,GAAG,EAAE,CAAC;AAEzC,sEAAsE;AACtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC;AAEpC,MAAM,MAAM,GAAG,CACb,UAA4F,EAC5F,YAAmD,EAC5B,EAAE,CAAC,CAAC;IAC3B,MAAM,EAAE,qBAAqB;IAC7B,YAAY;IACZ,gBAAgB,EAAE,kBAAkB,CAAC,qBAAqB,EAAE,UAAU,EAAE,EAAE,CAAC;CAC5E,CAAC,CAAC;AAEH,kFAAkF;AAClF,MAAM,CAAC,MAAM,yBAAyB,GAAgB;IACpD,EAAE,EAAE,uBAAuB;IAC3B,QAAQ,EAAE,iBAAiB;IAC3B,QAAQ,EAAE,CAAC,gBAAgB,CAAC;IAC5B,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,0EAA0E;IAC1F,SAAS,EAAE,CAAC,wCAAwC,EAAE,2CAA2C,CAAC;IAClG,eAAe,EAAE;QACf,kCAAkC;QAClC,yDAAyD;QACzD,0DAA0D;KAC3D;IACD,cAAc,EAAE,CAAC,yCAAyC,EAAE,qDAAqD,CAAC;IAClH,MAAM,EAAE,MAAM,CACZ;QACE,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;QACxB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE;QAC/B,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE;QAC3B,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE;QAC/B,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;KACzB,EACD;QACE;YACE,KAAK,EAAE,qBAAqB;YAC5B,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,sBAAsB;YAC7B,KAAK,EAAE,iCAAiC;SACzC;KACF,CACF;IACD,eAAe,EAAE;QACf;YACE,WAAW,EACT,wFAAwF;gBACxF,mFAAmF;YACrF,OAAO,EAAE,MAAM;SAChB;KACF;IACD,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IACxD,SAAS,EAAE;QACT;YACE,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,uFAAuF;SACnG;QACD;YACE,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,oCAAoC;SAChD;KACF;IACD,SAAS,EAAE;QACT,uFAAuF;QACvF,+DAA+D;KAChE;IACD,YAAY,EAAE,UAAU;CACzB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAgB;IACjD,EAAE,EAAE,oBAAoB;IACxB,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,CAAC,gBAAgB,EAAE,mBAAmB,CAAC;IACjD,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,wDAAwD;IACxE,SAAS,EAAE,CAAC,iDAAiD,CAAC;IAC9D,eAAe,EAAE,CAAC,kCAAkC,EAAE,+BAA+B,CAAC;IACtF,cAAc,EAAE,CAAC,yCAAyC,EAAE,kBAAkB,EAAE,0BAA0B,CAAC;IAC3G,MAAM,EAAE,MAAM,CACZ;QACE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE;QAC3B,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE;QAC/B,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE;QAC/B,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE;QAC1B,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE;KAChC,EACD,EAAE,CACH;IACD,eAAe,EAAE,EAAE;IACnB,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IACxD,SAAS,EAAE;QACT;YACE,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;YACV,SAAS,EACP,2GAA2G;SAC9G;QACD;YACE,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,UAAU;YAChB,IAAI,EAAE,oBAAoB;YAC1B,SAAS,EAAE,sEAAsE;SAClF;KACF;IACD,SAAS,EAAE;QACT,oFAAoF;QACpF,oFAAoF;KACrF;IACD,YAAY,EAAE,UAAU;CACzB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAgB;IACrD,EAAE,EAAE,wBAAwB;IAC5B,QAAQ,EAAE,eAAe;IACzB,QAAQ,EAAE,CAAC,iBAAiB,CAAC;IAC7B,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,2EAA2E;IAC3F,SAAS,EAAE,CAAC,kDAAkD,EAAE,wBAAwB,CAAC;IACzF,eAAe,EAAE;QACf,gCAAgC;QAChC,wCAAwC;QACxC,4CAA4C;KAC7C;IACD,cAAc,EAAE,CAAC,iBAAiB,EAAE,gCAAgC,CAAC;IACrE,KAAK,EAAE,iBAAiB,CAAC;QACvB,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,sBAAsB,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC/D,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACb,sBAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QAChG,IAAI,EAAE,8DAA8D;QACpE,MAAM,EAAE,iBAAiB;QACzB,OAAO,EACL,2FAA2F;YAC3F,oCAAoC;QACtC,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;YACxB,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAC1E,MAAM,KAAK,GAAG,sBAAsB,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,KAAK,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,GAAG,GAAG;gBAAE,OAAO,KAAK,CAAC;YAC/B,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC;QACD,cAAc,EAAE,iBAAiB;QACjC,cAAc,EAAE,UAAU;QAC1B,yEAAyE;QACzE,yBAAyB;QACzB,UAAU,EAAE,CAAC,+DAA+D,CAAC;KAC9E,CAAC;IACF,MAAM,EAAE,MAAM,CACZ;QACE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;QAC1B,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE;QAC/B,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE;KAC/B,EACD,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC,CAChG;IACD,eAAe,EAAE;QACf;YACE,WAAW,EACT,4FAA4F;gBAC5F,+BAA+B;YACjC,OAAO,EAAE,MAAM;SAChB;KACF;IACD,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IACxD,SAAS,EAAE;QACT;YACE,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,gFAAgF;SAC5F;QACD;YACE,EAAE,EAAE,MAAM;YACV,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,4BAA4B;SACxC;KACF;IACD,SAAS,EAAE;QACT,iGAAiG;QACjG,0HAA0H;KAC3H;IACD,YAAY,EAAE,UAAU;CACzB,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAgB;IAChD,EAAE,EAAE,mBAAmB;IACvB,QAAQ,EAAE,eAAe;IACzB,QAAQ,EAAE,CAAC,iBAAiB,CAAC;IAC7B,UAAU,EAAE,eAAe;IAC3B,cAAc,EAAE,iDAAiD;IACjE,SAAS,EAAE,CAAC,yBAAyB,EAAE,qCAAqC,CAAC;IAC7E,eAAe,EAAE,CAAC,+CAA+C,EAAE,uCAAuC,CAAC;IAC3G,cAAc,EAAE,CAAC,eAAe,EAAE,sDAAsD,CAAC;IACzF,KAAK,EAAE,iBAAiB,CAAC;QACvB,CAAC,EAAE,CAAC;QACJ,KAAK,EAAE,CAAC,GAAG,2BAA2B,CAAC,sBAAsB,EAAE,CAAC,EAAE,CAAC,CAAC;QACpE,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE,CACb,CAAC,GAAG,2BAA2B,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC;QACrG,IAAI,EAAE,+DAA+D;QACrE,MAAM,EAAE,eAAe;QACvB,OAAO,EACL,8FAA8F;QAChG,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YAClB,IAAI,GAAG,KAAK,SAAS,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QAClD,CAAC;QACD,cAAc,EAAE,eAAe;QAC/B,cAAc,EAAE,SAAS;QACzB,6EAA6E;QAC7E,UAAU,EAAE,CAAC,8DAA8D,CAAC;KAC7E,CAAC;IACF,MAAM,EAAE,MAAM,CACZ;QACE,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE;QAC1B,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE;QAC/B,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,UAAU,EAAE;QAC9B,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE;KAC7B,EACD,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,sBAAsB,EAAE,KAAK,EAAE,eAAe,EAAE,CAAC,CAC9F;IACD,eAAe,EAAE,EAAE;IACnB,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IACxD,SAAS,EAAE;QACT;YACE,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,uEAAuE;SACnF;KACF;IACD,SAAS,EAAE,CAAC,0HAA0H,CAAC;IACvI,YAAY,EAAE,UAAU;CACzB,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,mBAAmB,GAAgB;IAC9C,EAAE,EAAE,iBAAiB;IACrB,QAAQ,EAAE,aAAa;IACvB,QAAQ,EAAE,CAAC,YAAY,CAAC;IACxB,UAAU,EAAE,kBAAkB;IAC9B,cAAc,EAAE,8DAA8D;IAC9E,SAAS,EAAE,CAAC,sBAAsB,EAAE,qCAAqC,CAAC;IAC1E,eAAe,EAAE,CAAC,eAAe,EAAE,+CAA+C,CAAC;IACnF,cAAc,EAAE,CAAC,wBAAwB,EAAE,+CAA+C,CAAC;IAC3F,MAAM,EAAE,MAAM,CACZ;QACE,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,oBAAoB,EAAE;QAC5C,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE;QAC7B,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,aAAa,EAAE;QAClC,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE;QAC5B,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE;KACzB,EACD;QACE;YACE,KAAK,EAAE,qCAAqC;YAC5C,EAAE,EAAE,IAAI;YACR,KAAK,EAAE,kBAAkB;YACzB,KAAK,EAAE,gBAAgB;SACxB;KACF,CACF;IACD,eAAe,EAAE,EAAE;IACnB,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,UAAU,EAAE,uBAAuB,CAAC,CAAC;IACxD,SAAS,EAAE;QACT;YACE,EAAE,EAAE,KAAK;YACT,IAAI,EAAE,SAAS;YACf,IAAI,EAAE,IAAI;YACV,SAAS,EAAE,qFAAqF;SACjG;KACF;IACD,SAAS,EAAE,CAAC,+EAA+E,CAAC;IAC5F,YAAY,EAAE,UAAU;CACzB,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,yBAAyB,GAA2B;IAC/D,yBAAyB;IACzB,sBAAsB;IACtB,0BAA0B;IAC1B,qBAAqB;IACrB,mBAAmB;CACpB,CAAC"}