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,118 @@
1
+ /**
2
+ * The two Phase 0 APPROXIMATION bridges — design note §3, bridges 3 and 4.
3
+ *
4
+ * - `ab-pendulum-linear` — a REGULAR limit. `θ'' + ω0² sin θ = 0` reduces to
5
+ * `θ'' + ω0² θ = 0` as `θ0 → 0`. The order of the system does not drop, the
6
+ * error is `O(θ0²)` in the relative period, and the approximation is
7
+ * NON-UNIFORM in time: a fixed relative period error accumulates phase
8
+ * without bound, so the bound carries the horizon `t ≪ 16 T0/θ0²`.
9
+ * - `ab-damped-massless` — a SINGULAR limit. `m x'' + b x' + k x = 0` reduces
10
+ * to `b x' + k x = 0` as `m → 0`. The order DROPS from two to one, one
11
+ * initial condition is lost, and the reduced model cannot satisfy `x'(0)`.
12
+ * The bound therefore holds only OUTSIDE the boundary layer, `t ≥ 5 m/b`.
13
+ *
14
+ * On the position offset of the singular bridge: `x_full − x_red` is an
15
+ * `O((1 + |v0|) m)` deviation that PERSISTS THROUGHOUT THE OUTER REGION and
16
+ * decays only on the slow time scale `b/k`. It is the matched-asymptotics
17
+ * correction, not a boundary-layer transient, and waiting out the fast mode
18
+ * does not remove it. (Design note §9 YELLOW (5) — "non-vanishing" was the
19
+ * imprecise wording this replaces: the offset does go to zero as `t → ∞`.)
20
+ *
21
+ * @module atlas/oscillators/bridges-limits
22
+ */
23
+ import type { ApproximationBound, AtlasBridge, RelationContract } from '../types.js';
24
+ /**
25
+ * Build an `ApproximationBound`, rejecting one with no prose horizon.
26
+ *
27
+ * Every `approximation` bridge in this module is constructed through here, so
28
+ * the mandatory-horizon rule of `ApproximationBound` has something that FAILS
29
+ * rather than a comment asking for compliance. `horizonHolds` is mandatory by
30
+ * the type; the prose `horizon` is the field a caller can satisfy with `''`,
31
+ * so it is the one checked at run time. `uniformity: null` is accepted: not
32
+ * yet analysed is a real state, and the refusal lives in `boundPath`.
33
+ *
34
+ * @throws MissingHorizonError if `horizon` is empty or whitespace.
35
+ * @internal
36
+ */
37
+ export declare function makeApproximation(bound: ApproximationBound): ApproximationBound;
38
+ /**
39
+ * The EXACT relative period error of the pendulum at amplitude `theta0`:
40
+ * `(2/π) K(sin(θ0/2)) − 1 = 1/AGM(1, cos(θ0/2)) − 1`.
41
+ *
42
+ * This is the machine form of `ab-pendulum-linear`'s `delta`. It is SHARP —
43
+ * the bound equals the error it bounds — and it is strictly increasing in
44
+ * `|θ0|`, so its value at the edge of a declared amplitude range is the
45
+ * supremum over that range. That last property is what lets the record state
46
+ * one scalar for the whole domain honestly.
47
+ *
48
+ * The series `θ0²/16` is the LEADING TERM of this quantity, not an upper bound
49
+ * on it: at the domain edge `θ0 = 0.5` the series gives `0.0156250` while the
50
+ * exact error is `0.0158525311`, so the series UNDERSTATES by 1.456%. A record
51
+ * that declares the series value is violated at its own boundary.
52
+ *
53
+ * @returns `Infinity` outside `|θ0| < π`, where no finite period error exists.
54
+ * @internal
55
+ */
56
+ export declare function pendulumPeriodErrorAt(params: Readonly<Record<string, number>>): number;
57
+ /**
58
+ * The position-offset bound of `ab-damped-massless` at a point:
59
+ * `2 (1 + |v0|) m / b`, the formula this record's docstring has always
60
+ * carried. It is a bound ONLY at the witness normalisation `b = k = x0 = 1`:
61
+ * the leading offset is `(m/b)(v0 + k x0/b)`, and the formula has no `k` or
62
+ * `x0` in it. At `m = 1e-3, b = 1, k = 100` (inside `m k/b² < 1/4`) the true
63
+ * error is more than 20 times the formula.
64
+ *
65
+ * @returns `Infinity` unless `m`, `b`, `k`, `x0` and `v0` are all finite and
66
+ * `b = k = x0 = 1` — a missing parameter would otherwise silently return a
67
+ * bound for a normalisation the caller did not ask about.
68
+ * @internal
69
+ */
70
+ export declare function dampedOffsetBoundAt(params: Readonly<Record<string, number>>): number;
71
+ /**
72
+ * `ab-pendulum-linear` — small-angle pendulum → harmonic spring.
73
+ *
74
+ * `θ0²/16` is the leading term of the exact relative period error
75
+ * `(2/π) K(sin(θ0/2)) − 1`. At `θ0 = 0.2` the residual is `5.744e-6`, which
76
+ * the next series term `11 θ0⁴/3072 = 5.729e-6` accounts for to `1.5e-8`.
77
+ *
78
+ * `delta` is the EXACT error at the edge of the declared range, not that
79
+ * series term. The record previously declared `0.5²/16 = 0.0156250`, which is
80
+ * the series evaluated at `θ0 = 0.5` — and the exact error there is
81
+ * `0.0158525311`, so the declared bound was VIOLATED AT ITS OWN BOUNDARY by
82
+ * 1.456%. A truncated series is an approximation of the error, not a bound on
83
+ * it, and the sign of its omitted tail decides which. Here the tail is
84
+ * positive, so the series sits below what it was asked to cover.
85
+ *
86
+ * @internal
87
+ */
88
+ export declare const AB_PENDULUM_LINEAR: AtlasBridge;
89
+ /**
90
+ * `ab-damped-massless` — the SINGULAR `m → 0` limit of the damped spring.
91
+ *
92
+ * `deltaAt = 2(1 + |v0|) m/b` bounds the position offset outside the boundary
93
+ * layer, and `delta` is its supremum over the declared range rather than its
94
+ * value at one fixture. The lost initial condition is visible in the VELOCITY: inside the
95
+ * layer the reduced model's `x'` is wrong by O(1/m·…), and it is only after
96
+ * `t ≈ 5 m/b` that the fast mode has decayed.
97
+ *
98
+ * @internal
99
+ */
100
+ export declare const AB_DAMPED_MASSLESS: AtlasBridge;
101
+ /** The two approximation bridges of this module, in design-note order. @internal */
102
+ export declare const LIMIT_BRIDGES: readonly AtlasBridge[];
103
+ /**
104
+ * The two approximation bridges re-registered through `RelationContract`.
105
+ *
106
+ * The union REQUIRES `bound` on an `approximation`, and `ApproximationBound`
107
+ * requires its own machine `horizonHolds`, so these two lines are what turn
108
+ * Sprint 0's doc-comment requirement into a compile-and-throw one. Both bounds
109
+ * are the records' own, measured ones — nothing is restated here.
110
+ *
111
+ * @internal
112
+ */
113
+ export declare const CONTRACT_PENDULUM_LINEAR: RelationContract;
114
+ /** @internal */
115
+ export declare const CONTRACT_DAMPED_MASSLESS: RelationContract;
116
+ /** The two limit contracts, in design-note order. @internal */
117
+ export declare const LIMIT_CONTRACTS: readonly RelationContract[];
118
+ //# sourceMappingURL=bridges-limits.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges-limits.d.ts","sourceRoot":"","sources":["../../../src/atlas/oscillators/bridges-limits.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,gBAAgB,EAAU,MAAM,aAAa,CAAC;AAQ7F;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,CAO/E;AAYD;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAItF;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,CAKpF;AAuCD;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,kBAAkB,EAAE,WA2FhC,CAAC;AAEF;;;;;;;;;;GAUG;AACH,eAAO,MAAM,kBAAkB,EAAE,WAyEhC,CAAC;AAEF,oFAAoF;AACpF,eAAO,MAAM,aAAa,EAAE,SAAS,WAAW,EAA6C,CAAC;AAE9F;;;;;;;;;GASG;AACH,eAAO,MAAM,wBAAwB,EAAE,gBACC,CAAC;AAEzC,gBAAgB;AAChB,eAAO,MAAM,wBAAwB,EAAE,gBACC,CAAC;AAEzC,+DAA+D;AAC/D,eAAO,MAAM,eAAe,EAAE,SAAS,gBAAgB,EAGtD,CAAC"}
@@ -0,0 +1,342 @@
1
+ /**
2
+ * The two Phase 0 APPROXIMATION bridges — design note §3, bridges 3 and 4.
3
+ *
4
+ * - `ab-pendulum-linear` — a REGULAR limit. `θ'' + ω0² sin θ = 0` reduces to
5
+ * `θ'' + ω0² θ = 0` as `θ0 → 0`. The order of the system does not drop, the
6
+ * error is `O(θ0²)` in the relative period, and the approximation is
7
+ * NON-UNIFORM in time: a fixed relative period error accumulates phase
8
+ * without bound, so the bound carries the horizon `t ≪ 16 T0/θ0²`.
9
+ * - `ab-damped-massless` — a SINGULAR limit. `m x'' + b x' + k x = 0` reduces
10
+ * to `b x' + k x = 0` as `m → 0`. The order DROPS from two to one, one
11
+ * initial condition is lost, and the reduced model cannot satisfy `x'(0)`.
12
+ * The bound therefore holds only OUTSIDE the boundary layer, `t ≥ 5 m/b`.
13
+ *
14
+ * On the position offset of the singular bridge: `x_full − x_red` is an
15
+ * `O((1 + |v0|) m)` deviation that PERSISTS THROUGHOUT THE OUTER REGION and
16
+ * decays only on the slow time scale `b/k`. It is the matched-asymptotics
17
+ * correction, not a boundary-layer transient, and waiting out the fast mode
18
+ * does not remove it. (Design note §9 YELLOW (5) — "non-vanishing" was the
19
+ * imprecise wording this replaces: the offset does go to zero as `t → ∞`.)
20
+ *
21
+ * @module atlas/oscillators/bridges-limits
22
+ */
23
+ import { deriveRegimeGroups } from '../regime.js';
24
+ import { MissingHorizonError } from '../types.js';
25
+ import { relationContractOf } from './bridges-exact.js';
26
+ import { DAMPING, SPRING_CONSTANT } from './dimensions.js';
27
+ import { ACCELERATION, LENGTH, MASS } from '../../dimensional/types.js';
28
+ const FAMILY = 'oscillators';
29
+ const TEST_FILE = 'tests/atlas/oscillators-limits.test.ts';
30
+ /**
31
+ * Build an `ApproximationBound`, rejecting one with no prose horizon.
32
+ *
33
+ * Every `approximation` bridge in this module is constructed through here, so
34
+ * the mandatory-horizon rule of `ApproximationBound` has something that FAILS
35
+ * rather than a comment asking for compliance. `horizonHolds` is mandatory by
36
+ * the type; the prose `horizon` is the field a caller can satisfy with `''`,
37
+ * so it is the one checked at run time. `uniformity: null` is accepted: not
38
+ * yet analysed is a real state, and the refusal lives in `boundPath`.
39
+ *
40
+ * @throws MissingHorizonError if `horizon` is empty or whitespace.
41
+ * @internal
42
+ */
43
+ export function makeApproximation(bound) {
44
+ if (bound.horizon.trim() === '') {
45
+ throw new MissingHorizonError('an approximation bound requires a non-empty prose horizon beside horizonHolds');
46
+ }
47
+ return bound;
48
+ }
49
+ /** Arithmetic–geometric mean, the standard evaluation route for `K`. @internal */
50
+ function agm(a0, b0) {
51
+ let a = a0;
52
+ let b = b0;
53
+ for (let i = 0; i < 60 && a !== b; i++) {
54
+ [a, b] = [(a + b) / 2, Math.sqrt(a * b)];
55
+ }
56
+ return a;
57
+ }
58
+ /**
59
+ * The EXACT relative period error of the pendulum at amplitude `theta0`:
60
+ * `(2/π) K(sin(θ0/2)) − 1 = 1/AGM(1, cos(θ0/2)) − 1`.
61
+ *
62
+ * This is the machine form of `ab-pendulum-linear`'s `delta`. It is SHARP —
63
+ * the bound equals the error it bounds — and it is strictly increasing in
64
+ * `|θ0|`, so its value at the edge of a declared amplitude range is the
65
+ * supremum over that range. That last property is what lets the record state
66
+ * one scalar for the whole domain honestly.
67
+ *
68
+ * The series `θ0²/16` is the LEADING TERM of this quantity, not an upper bound
69
+ * on it: at the domain edge `θ0 = 0.5` the series gives `0.0156250` while the
70
+ * exact error is `0.0158525311`, so the series UNDERSTATES by 1.456%. A record
71
+ * that declares the series value is violated at its own boundary.
72
+ *
73
+ * @returns `Infinity` outside `|θ0| < π`, where no finite period error exists.
74
+ * @internal
75
+ */
76
+ export function pendulumPeriodErrorAt(params) {
77
+ const { theta0 } = params;
78
+ if (!Number.isFinite(theta0) || Math.abs(theta0) >= Math.PI)
79
+ return Infinity;
80
+ return 1 / agm(1, Math.cos(theta0 / 2)) - 1;
81
+ }
82
+ /**
83
+ * The position-offset bound of `ab-damped-massless` at a point:
84
+ * `2 (1 + |v0|) m / b`, the formula this record's docstring has always
85
+ * carried. It is a bound ONLY at the witness normalisation `b = k = x0 = 1`:
86
+ * the leading offset is `(m/b)(v0 + k x0/b)`, and the formula has no `k` or
87
+ * `x0` in it. At `m = 1e-3, b = 1, k = 100` (inside `m k/b² < 1/4`) the true
88
+ * error is more than 20 times the formula.
89
+ *
90
+ * @returns `Infinity` unless `m`, `b`, `k`, `x0` and `v0` are all finite and
91
+ * `b = k = x0 = 1` — a missing parameter would otherwise silently return a
92
+ * bound for a normalisation the caller did not ask about.
93
+ * @internal
94
+ */
95
+ export function dampedOffsetBoundAt(params) {
96
+ const { m, b, k, x0, v0 } = params;
97
+ if (![m, b, k, x0, v0].every(Number.isFinite))
98
+ return Infinity;
99
+ if (b !== 1 || k !== 1 || x0 !== 1)
100
+ return Infinity;
101
+ return (2 * (1 + Math.abs(v0)) * m) / b;
102
+ }
103
+ /** Pendulum regime: `θ0 ≤ 0.5 rad`, stated on the dimensionless input. @internal */
104
+ const PENDULUM_REGIME = {
105
+ family: FAMILY,
106
+ inequalities: [{ group: 'theta0', op: '<=', bound: 0.5, alias: 'θ0 ≤ 0.5 rad' }],
107
+ groupDefinitions: deriveRegimeGroups(FAMILY, [
108
+ { name: 'g', dim: ACCELERATION },
109
+ { name: 'ell', dim: LENGTH },
110
+ ], ['theta0']),
111
+ };
112
+ /**
113
+ * Damped-spring regime: overdamped, `m k / b² < 1/4`.
114
+ *
115
+ * The inequality is written on the π-group, not on `ζ = ½ (m k / b²)^(−½)`,
116
+ * which is a derived quantity and not a group (`RegimeInequality` doc).
117
+ * `m k / b² < 1/4` is exactly `ζ > 1`, recorded as the display alias.
118
+ *
119
+ * @internal
120
+ */
121
+ const DAMPED_REGIME = {
122
+ family: FAMILY,
123
+ inequalities: [{ group: 'm · b^-2 · k', op: '<', bound: 0.25, alias: 'ζ > 1' }],
124
+ groupDefinitions: deriveRegimeGroups(FAMILY, [
125
+ { name: 'm', dim: MASS },
126
+ { name: 'b', dim: DAMPING },
127
+ { name: 'k', dim: SPRING_CONSTANT },
128
+ ], []),
129
+ };
130
+ /**
131
+ * `ab-pendulum-linear` — small-angle pendulum → harmonic spring.
132
+ *
133
+ * `θ0²/16` is the leading term of the exact relative period error
134
+ * `(2/π) K(sin(θ0/2)) − 1`. At `θ0 = 0.2` the residual is `5.744e-6`, which
135
+ * the next series term `11 θ0⁴/3072 = 5.729e-6` accounts for to `1.5e-8`.
136
+ *
137
+ * `delta` is the EXACT error at the edge of the declared range, not that
138
+ * series term. The record previously declared `0.5²/16 = 0.0156250`, which is
139
+ * the series evaluated at `θ0 = 0.5` — and the exact error there is
140
+ * `0.0158525311`, so the declared bound was VIOLATED AT ITS OWN BOUNDARY by
141
+ * 1.456%. A truncated series is an approximation of the error, not a bound on
142
+ * it, and the sign of its omitted tail decides which. Here the tail is
143
+ * positive, so the series sits below what it was asked to cover.
144
+ *
145
+ * @internal
146
+ */
147
+ export const AB_PENDULUM_LINEAR = {
148
+ id: 'ab-pendulum-linear',
149
+ relation: 'approximation',
150
+ premises: ['model-pendulum'],
151
+ conclusion: 'model-spring',
152
+ transformation: 'sin θ → θ, with x ↔ ℓ θ and ω0² = g/ℓ',
153
+ preserves: ['harmonic frequency ω0 to O(θ0²)', 'energy conservation', 'time-reversal symmetry'],
154
+ doesNotPreserve: ['the amplitude dependence of the period', 'phase over times t ≳ 16 T0/θ0²'],
155
+ sideConditions: ['θ0 ≤ 0.5 rad', 'the bound is a PERIOD error and is not uniform in time'],
156
+ bound: makeApproximation({
157
+ K: 1,
158
+ // Sup over `θ0 ≤ 0.5`: the error is strictly increasing in |θ0|, so the
159
+ // edge value IS the supremum. 0.0158525311014... (AGM), independently
160
+ // reproduced by quadrature of the complete elliptic integral.
161
+ delta: pendulumPeriodErrorAt({ theta0: 0.5 }),
162
+ deltaAt: pendulumPeriodErrorAt,
163
+ norm: 'relative period error',
164
+ domain: 'θ0 ≤ 0.5 rad',
165
+ horizon: 't ≪ 16 T0/θ0²; machine form t < 4 T0/θ0², the π/2-drift time',
166
+ // ⚠ The machine form is a QUARTER of the prose scale, and it must be.
167
+ // `16 T0/θ0²` is the time at which the accumulated phase drift reaches a
168
+ // FULL 2π (measured: 400 T0 at θ0 = 0.2, drift 6.2976 rad) — by then the
169
+ // approximation has lapped, so `t < 16 T0/θ0²` is not a horizon at all.
170
+ // The `≪` is what carries the whole claim, and `<` does not render it.
171
+ // `4 T0/θ0²` is the π/2-drift time, which is exactly what W7b measures
172
+ // independently (99.77 cycles at θ0 = 0.2). It is also what makes
173
+ // `horizonHolds(200 T0)` false and `horizonHolds(10 T0)` true.
174
+ horizonHolds: (t, params) => {
175
+ const { T0, theta0 } = params;
176
+ if (!Number.isFinite(T0) || !Number.isFinite(theta0) || theta0 === 0)
177
+ return false;
178
+ return t < (4 * T0) / theta0 ** 2;
179
+ },
180
+ parameterRange: 'θ0 ≤ 0.5 rad',
181
+ limitCharacter: 'regular',
182
+ // A period error. The record says it is not uniform in time, so time is
183
+ // not listed.
184
+ uniformity: ['one period, for θ0 in the stated domain'],
185
+ }),
186
+ regime: PENDULUM_REGIME,
187
+ counterexamples: [
188
+ {
189
+ description: 'the approximation is non-uniform in time: at θ0 = 0.2 the phase drift reaches π/2 ' +
190
+ 'after ~100 cycles, however small the per-cycle error is',
191
+ witness: 'W7b',
192
+ },
193
+ ],
194
+ evidence: new Set(['numerically-supported']),
195
+ witnesses: [
196
+ {
197
+ id: 'W7',
198
+ kind: 'numeric',
199
+ test: TEST_FILE,
200
+ tolerance: 'T/T0 − 1 ∈ [0.002505, 0.002507]; residual ∈ [5.70e-6, 5.76e-6] at θ0 = 0.2',
201
+ },
202
+ {
203
+ id: 'W7b',
204
+ kind: 'numeric',
205
+ test: TEST_FILE,
206
+ tolerance: 'cycles to π/2 drift ∈ [99, 101] at θ0 = 0.2',
207
+ },
208
+ {
209
+ id: 'W7c',
210
+ kind: 'numeric',
211
+ test: TEST_FILE,
212
+ tolerance: 'RK4 zero-crossing lag within 0.05° of the elliptic prediction 89.98°',
213
+ },
214
+ ],
215
+ citations: [
216
+ 'Landau & Lifshitz, Mechanics §11 (pendulum period as a complete elliptic integral)',
217
+ 'Abramowitz & Stegun §17.6 (AGM evaluation of K)',
218
+ ],
219
+ reviewStatus: 'proposed',
220
+ // Phase 4 S4.6. A checked counterpart of this bridge's TRANSFORMATION — the
221
+ // linearized pendulum IS the harmonic oscillator with mass mℓ², spring
222
+ // constant mgℓ, hence ω0² = g/ℓ. It does NOT certify `bound.delta`: Physlib's
223
+ // period results concern `periodFormula`, which its own TODO has not yet tied
224
+ // to the motion. Axioms measured with `#print axioms` on a local build at
225
+ // this commit (positive control: a `sorry` prints `sorryAx`; none here). The probes and
226
+ // their gate: `formal/physlib/`, `tools/formalref-axiom-gate/`.
227
+ // Fidelity is earned in tests/atlas/formal-sanity.test.ts.
228
+ formalRef: {
229
+ system: 'lean4-physlib',
230
+ statement: 'ClassicalMechanics.SimplePendulum.linearizedEquationOfMotion_iff: for a smooth lift θ, ' +
231
+ 'θ̈ + ω²θ = 0 iff θ solves the equation of motion of toHarmonicOscillator (mass mℓ², ' +
232
+ 'spring constant mgℓ); with toHarmonicOscillator_ω, ω = √(g/ℓ)',
233
+ version: 'physlib@5ad56e24de155462acd8478458292347393d5908 lean4:v4.34.0',
234
+ axioms: ['propext', 'Classical.choice', 'Quot.sound'],
235
+ fidelity: 'sanity-lemmas',
236
+ },
237
+ };
238
+ /**
239
+ * `ab-damped-massless` — the SINGULAR `m → 0` limit of the damped spring.
240
+ *
241
+ * `deltaAt = 2(1 + |v0|) m/b` bounds the position offset outside the boundary
242
+ * layer, and `delta` is its supremum over the declared range rather than its
243
+ * value at one fixture. The lost initial condition is visible in the VELOCITY: inside the
244
+ * layer the reduced model's `x'` is wrong by O(1/m·…), and it is only after
245
+ * `t ≈ 5 m/b` that the fast mode has decayed.
246
+ *
247
+ * @internal
248
+ */
249
+ export const AB_DAMPED_MASSLESS = {
250
+ id: 'ab-damped-massless',
251
+ relation: 'approximation',
252
+ premises: ['model-damped-spring'],
253
+ conclusion: 'model-first-order',
254
+ transformation: 'm → 0, dropping the m x″ term',
255
+ preserves: ['the slow relaxation rate k/b to O(m)', 'the sign and monotonicity of the decay'],
256
+ doesNotPreserve: [
257
+ 'the order of the system (two → one)',
258
+ "the initial condition x'(0), which the reduced model cannot satisfy",
259
+ 'the fast mode r ≈ −b/m',
260
+ ],
261
+ sideConditions: [
262
+ 'overdamped: m k / b² < 1/4',
263
+ 'the bound holds only outside the boundary layer, t ≥ 5 m/b',
264
+ ],
265
+ bound: makeApproximation({
266
+ K: 1,
267
+ // Sup over the DECLARED range, not the fixture. `2(1+|v0|)m/b` increases
268
+ // in both m and |v0|, and the declared range is `m k/b² < 1/4` with
269
+ // `|v0| ≤ 5`; at the witness normalisation `b = k = 1` that is `m < 1/4`,
270
+ // so the supremum is `2·(1+5)·(1/4) = 3`, approached at the open edge and
271
+ // not attained. The record previously declared `2·(1+5)·1e-3 = 0.012`,
272
+ // the same formula frozen at the ONE fixture mass `m = 1e-3` — true error
273
+ // there is 5.96e-3, but at m = 0.24 it is 5.19e-1, forty times the
274
+ // declared bound.
275
+ delta: dampedOffsetBoundAt({ m: 0.25, b: 1, k: 1, x0: 1, v0: 5 }),
276
+ deltaAt: dampedOffsetBoundAt,
277
+ norm: 'sup |x − x_reduced| for t ≥ 5 m/b',
278
+ domain: 't ≥ 5 m/b, overdamped, at the witness normalisation b = k = 1',
279
+ horizon: 't ≥ 5 m/b (outside the boundary layer)',
280
+ horizonHolds: (t, params) => {
281
+ const { m, b } = params;
282
+ if (!Number.isFinite(m) || !Number.isFinite(b) || b === 0)
283
+ return false;
284
+ return t >= (5 * m) / b;
285
+ },
286
+ parameterRange: 'm k / b² < 1/4, |v0| ≤ 5; with b = k = 1 this is m < 1/4',
287
+ limitCharacter: 'singular',
288
+ uniformity: [
289
+ 't ≥ 5 m/b, overdamped, at the witness normalisation b = k = 1',
290
+ 'm k / b² < 1/4, |v0| ≤ 5',
291
+ ],
292
+ }),
293
+ regime: DAMPED_REGIME,
294
+ counterexamples: [
295
+ {
296
+ description: "inside the boundary layer the reduced model's velocity is wrong by O(1): at " +
297
+ "t = 0.5 m/b with v0 = 5 the velocity error is 3.6, against x'_red = −1",
298
+ witness: 'W8b',
299
+ },
300
+ ],
301
+ evidence: new Set(['numerically-supported']),
302
+ witnesses: [
303
+ {
304
+ id: 'W8',
305
+ kind: 'numeric',
306
+ test: TEST_FILE,
307
+ tolerance: '|r_slow + k/b| < 2m and |r_fast·m + b| < 2m for m ∈ {1e-1, 1e-2, 1e-3}',
308
+ },
309
+ {
310
+ id: 'W8b',
311
+ kind: 'numeric',
312
+ test: TEST_FILE,
313
+ tolerance: "|x_full − x_red| < 2(1+v0)·m for t ≥ 5 m/b; |x'| error > 1 at 0.5 m/b and < 0.05 at 5 m/b",
314
+ },
315
+ ],
316
+ citations: [
317
+ "Kevorkian & Cole, Multiple Scale and Singular Perturbation Methods §2 (Tikhonov's theorem)",
318
+ 'Verhulst, Methods and Applications of Singular Perturbations §8 (boundary layers)',
319
+ ],
320
+ reviewStatus: 'proposed',
321
+ };
322
+ /** The two approximation bridges of this module, in design-note order. @internal */
323
+ export const LIMIT_BRIDGES = [AB_PENDULUM_LINEAR, AB_DAMPED_MASSLESS];
324
+ /**
325
+ * The two approximation bridges re-registered through `RelationContract`.
326
+ *
327
+ * The union REQUIRES `bound` on an `approximation`, and `ApproximationBound`
328
+ * requires its own machine `horizonHolds`, so these two lines are what turn
329
+ * Sprint 0's doc-comment requirement into a compile-and-throw one. Both bounds
330
+ * are the records' own, measured ones — nothing is restated here.
331
+ *
332
+ * @internal
333
+ */
334
+ export const CONTRACT_PENDULUM_LINEAR = relationContractOf(AB_PENDULUM_LINEAR);
335
+ /** @internal */
336
+ export const CONTRACT_DAMPED_MASSLESS = relationContractOf(AB_DAMPED_MASSLESS);
337
+ /** The two limit contracts, in design-note order. @internal */
338
+ export const LIMIT_CONTRACTS = [
339
+ CONTRACT_PENDULUM_LINEAR,
340
+ CONTRACT_DAMPED_MASSLESS,
341
+ ];
342
+ //# sourceMappingURL=bridges-limits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridges-limits.js","sourceRoot":"","sources":["../../../src/atlas/oscillators/bridges-limits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Dimension constants the oscillator pilot needs that the canonical entry
3
+ * files declare MODULE-LOCAL and do not export.
4
+ *
5
+ * They are redefined here with the same `dim(...)` arguments, quoted from
6
+ * source in design note §10 Q2. `tests/atlas/models.test.ts` asserts the
7
+ * values, so a future divergence in an entry file fails a test.
8
+ *
9
+ * `FREQUENCY`, `MASS`, `LENGTH`, `VELOCITY` and `ACCELERATION` are importable
10
+ * from `src/dimensional/types.ts` and are NOT redefined here.
11
+ *
12
+ * @module atlas/oscillators/dimensions
13
+ */
14
+ import type { Dimension } from '../../dimensional/types.js';
15
+ /** farad, `L^-2 M^-1 T^4 I^2` — `src/canonical/entries/electromagnetism.ts:42`. @internal */
16
+ export declare const CAPACITANCE: Dimension;
17
+ /** henry, `L^2 M T^-2 I^-2` — `src/canonical/entries/electromagnetism.ts:43`. @internal */
18
+ export declare const INDUCTANCE: Dimension;
19
+ /** ohm, `L^2 M T^-3 I^-2` — `src/canonical/entries/electromagnetism.ts:40`. @internal */
20
+ export declare const RESISTANCE: Dimension;
21
+ /**
22
+ * `M T^-2` — defined TWICE, identically, at
23
+ * `src/canonical/entries/mechanics.ts:35` and
24
+ * `src/canonical/entries/fluids-waves.ts:48`. One definition here; the test
25
+ * asserts agreement with both.
26
+ *
27
+ * @internal
28
+ */
29
+ export declare const SPRING_CONSTANT: Dimension;
30
+ /** `M T^-1` — the `b` of `m x'' + b x' + k x = 0`. @internal */
31
+ export declare const DAMPING: Dimension;
32
+ /** `M L^-2 T^-2` — the `β` of `m x'' + k x + β x³ = 0`. @internal */
33
+ export declare const CUBIC_STIFFNESS: Dimension;
34
+ //# sourceMappingURL=dimensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dimensions.d.ts","sourceRoot":"","sources":["../../../src/atlas/oscillators/dimensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,6FAA6F;AAC7F,eAAO,MAAM,WAAW,EAAE,SAA6B,CAAC;AAExD,2FAA2F;AAC3F,eAAO,MAAM,UAAU,EAAE,SAA6B,CAAC;AAEvD,yFAAyF;AACzF,eAAO,MAAM,UAAU,EAAE,SAA6B,CAAC;AAEvD;;;;;;;GAOG;AACH,eAAO,MAAM,eAAe,EAAE,SAAyB,CAAC;AAExD,gEAAgE;AAChE,eAAO,MAAM,OAAO,EAAE,SAAyB,CAAC;AAEhD,qEAAqE;AACrE,eAAO,MAAM,eAAe,EAAE,SAA0B,CAAC"}
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Dimension constants the oscillator pilot needs that the canonical entry
3
+ * files declare MODULE-LOCAL and do not export.
4
+ *
5
+ * They are redefined here with the same `dim(...)` arguments, quoted from
6
+ * source in design note §10 Q2. `tests/atlas/models.test.ts` asserts the
7
+ * values, so a future divergence in an entry file fails a test.
8
+ *
9
+ * `FREQUENCY`, `MASS`, `LENGTH`, `VELOCITY` and `ACCELERATION` are importable
10
+ * from `src/dimensional/types.ts` and are NOT redefined here.
11
+ *
12
+ * @module atlas/oscillators/dimensions
13
+ */
14
+ import { dim } from '../../dimensional/ast-builders.js';
15
+ /** farad, `L^-2 M^-1 T^4 I^2` — `src/canonical/entries/electromagnetism.ts:42`. @internal */
16
+ export const CAPACITANCE = dim(-2, -1, 4, 2);
17
+ /** henry, `L^2 M T^-2 I^-2` — `src/canonical/entries/electromagnetism.ts:43`. @internal */
18
+ export const INDUCTANCE = dim(2, 1, -2, -2);
19
+ /** ohm, `L^2 M T^-3 I^-2` — `src/canonical/entries/electromagnetism.ts:40`. @internal */
20
+ export const RESISTANCE = dim(2, 1, -3, -2);
21
+ /**
22
+ * `M T^-2` — defined TWICE, identically, at
23
+ * `src/canonical/entries/mechanics.ts:35` and
24
+ * `src/canonical/entries/fluids-waves.ts:48`. One definition here; the test
25
+ * asserts agreement with both.
26
+ *
27
+ * @internal
28
+ */
29
+ export const SPRING_CONSTANT = dim(0, 1, -2);
30
+ /** `M T^-1` — the `b` of `m x'' + b x' + k x = 0`. @internal */
31
+ export const DAMPING = dim(0, 1, -1);
32
+ /** `M L^-2 T^-2` — the `β` of `m x'' + k x + β x³ = 0`. @internal */
33
+ export const CUBIC_STIFFNESS = dim(-2, 1, -2);
34
+ //# sourceMappingURL=dimensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dimensions.js","sourceRoot":"","sources":["../../../src/atlas/oscillators/dimensions.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,mCAAmC,CAAC;AAGxD,6FAA6F;AAC7F,MAAM,CAAC,MAAM,WAAW,GAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAExD,2FAA2F;AAC3F,MAAM,CAAC,MAAM,UAAU,GAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvD,yFAAyF;AACzF,MAAM,CAAC,MAAM,UAAU,GAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEvD;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,eAAe,GAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAExD,gEAAgE;AAChE,MAAM,CAAC,MAAM,OAAO,GAAc,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAEhD,qEAAqE;AACrE,MAAM,CAAC,MAAM,eAAe,GAAc,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Oscillator-family assembly (Atlas Phase 0, S0.6).
3
+ *
4
+ * Collects the W1/W2 records — the nine models, the five bridges and the one
5
+ * rejection — into the single value the JSON projection serializes. Assembly
6
+ * only: this module defines no physics and no numbers of its own, so a change
7
+ * to a bridge is a change in ONE place.
8
+ *
9
+ * The design note calls this file `family.ts` (§1 layout); the S0.6 brief
10
+ * places it at `oscillators/index.ts`. The brief is followed, because the
11
+ * package's `exports` map and every other barrel in this tree use `index.ts`.
12
+ *
13
+ * @module atlas/oscillators
14
+ */
15
+ import type { AtlasBridge, AtlasRejection } from '../types.js';
16
+ import type { AtlasModel } from '../model.js';
17
+ /**
18
+ * One atlas family: its models, the bridges between them, and the claimed
19
+ * bridges that were refuted. A rejection is evidence, not an omission, so it
20
+ * travels with the family rather than being dropped.
21
+ *
22
+ * @internal
23
+ */
24
+ export interface AtlasFamily {
25
+ /** `'oscillators'`. */
26
+ readonly family: string;
27
+ readonly models: readonly AtlasModel[];
28
+ readonly bridges: readonly AtlasBridge[];
29
+ readonly rejections: readonly AtlasRejection[];
30
+ }
31
+ /**
32
+ * The oscillator pilot family, in design-note order: the two exact
33
+ * equivalences, the two approximations, then the coarse-graining.
34
+ *
35
+ * @internal
36
+ */
37
+ export declare const OSCILLATOR_FAMILY: AtlasFamily;
38
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/atlas/oscillators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAO9C;;;;;;GAMG;AACH,MAAM,WAAW,WAAW;IAC1B,uBAAuB;IACvB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,MAAM,EAAE,SAAS,UAAU,EAAE,CAAC;IACvC,QAAQ,CAAC,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IACzC,QAAQ,CAAC,UAAU,EAAE,SAAS,cAAc,EAAE,CAAC;CAChD;AAED;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,EAAE,WAU/B,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Oscillator-family assembly (Atlas Phase 0, S0.6).
3
+ *
4
+ * Collects the W1/W2 records — the nine models, the five bridges and the one
5
+ * rejection — into the single value the JSON projection serializes. Assembly
6
+ * only: this module defines no physics and no numbers of its own, so a change
7
+ * to a bridge is a change in ONE place.
8
+ *
9
+ * The design note calls this file `family.ts` (§1 layout); the S0.6 brief
10
+ * places it at `oscillators/index.ts`. The brief is followed, because the
11
+ * package's `exports` map and every other barrel in this tree use `index.ts`.
12
+ *
13
+ * @module atlas/oscillators
14
+ */
15
+ import { ATLAS_MODELS } from './models.js';
16
+ import { BRIDGE_SPRING_LC, BRIDGE_DAMPED_RLC } from './bridges-exact.js';
17
+ import { LIMIT_BRIDGES } from './bridges-limits.js';
18
+ import { BRIDGE_CHAIN_WAVE } from './bridges-coarse.js';
19
+ import { ATLAS_REJECTIONS } from './rejections.js';
20
+ /**
21
+ * The oscillator pilot family, in design-note order: the two exact
22
+ * equivalences, the two approximations, then the coarse-graining.
23
+ *
24
+ * @internal
25
+ */
26
+ export const OSCILLATOR_FAMILY = {
27
+ family: 'oscillators',
28
+ models: ATLAS_MODELS,
29
+ bridges: [
30
+ BRIDGE_SPRING_LC,
31
+ BRIDGE_DAMPED_RLC,
32
+ ...LIMIT_BRIDGES,
33
+ BRIDGE_CHAIN_WAVE,
34
+ ],
35
+ rejections: ATLAS_REJECTIONS,
36
+ };
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/atlas/oscillators/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAiBnD;;;;;GAKG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAgB;IAC5C,MAAM,EAAE,aAAa;IACrB,MAAM,EAAE,YAAY;IACpB,OAAO,EAAE;QACP,gBAAgB;QAChB,iBAAiB;QACjB,GAAG,aAAa;QAChB,iBAAiB;KAClB;IACD,UAAU,EAAE,gBAAgB;CAC7B,CAAC"}