universal-physics-tensor 0.47.1 → 1.0.1

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 (591) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +396 -383
  3. package/bin/upt.mjs +7 -1
  4. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +108 -0
  5. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -0
  6. package/dist/atlas/benchmark/hybrid-retrieval.js +241 -0
  7. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -0
  8. package/dist/atlas/catalog-formal-ref.d.ts +24 -0
  9. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -0
  10. package/dist/atlas/catalog-formal-ref.js +36 -0
  11. package/dist/atlas/catalog-formal-ref.js.map +1 -0
  12. package/dist/atlas/composition-table.d.ts +11 -46
  13. package/dist/atlas/composition-table.d.ts.map +1 -1
  14. package/dist/atlas/composition-table.js +7 -124
  15. package/dist/atlas/composition-table.js.map +1 -1
  16. package/dist/atlas/conventions.d.ts +4 -58
  17. package/dist/atlas/conventions.d.ts.map +1 -1
  18. package/dist/atlas/conventions.js +3 -88
  19. package/dist/atlas/conventions.js.map +1 -1
  20. package/dist/atlas/derive-evidence.d.ts +50 -3
  21. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  22. package/dist/atlas/derive-evidence.js +73 -4
  23. package/dist/atlas/derive-evidence.js.map +1 -1
  24. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  25. package/dist/atlas/diffusion/bridges-closure.js +5 -1
  26. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  27. package/dist/atlas/index.d.ts +9 -7
  28. package/dist/atlas/index.d.ts.map +1 -1
  29. package/dist/atlas/index.js +6 -5
  30. package/dist/atlas/index.js.map +1 -1
  31. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  32. package/dist/atlas/oscillators/bridges-exact.js +6 -0
  33. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  34. package/dist/atlas/oscillators/bridges-limits.d.ts +2 -0
  35. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  36. package/dist/atlas/oscillators/bridges-limits.js +11 -19
  37. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  38. package/dist/atlas/oscillators/limit-witnesses.d.ts +93 -0
  39. package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -0
  40. package/dist/atlas/oscillators/limit-witnesses.js +152 -0
  41. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -0
  42. package/dist/atlas/oscillators/models.d.ts +2 -1
  43. package/dist/atlas/oscillators/models.d.ts.map +1 -1
  44. package/dist/atlas/oscillators/models.js +4 -3
  45. package/dist/atlas/oscillators/models.js.map +1 -1
  46. package/dist/atlas/oscillators/norm-transport-witness.d.ts +37 -0
  47. package/dist/atlas/oscillators/norm-transport-witness.d.ts.map +1 -0
  48. package/dist/atlas/oscillators/norm-transport-witness.js +58 -0
  49. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -0
  50. package/dist/atlas/oscillators/norm-transport.d.ts +44 -0
  51. package/dist/atlas/oscillators/norm-transport.d.ts.map +1 -0
  52. package/dist/atlas/oscillators/norm-transport.js +66 -0
  53. package/dist/atlas/oscillators/norm-transport.js.map +1 -0
  54. package/dist/atlas/oscillators/norms.d.ts +11 -0
  55. package/dist/atlas/oscillators/norms.d.ts.map +1 -0
  56. package/dist/atlas/oscillators/norms.js +11 -0
  57. package/dist/atlas/oscillators/norms.js.map +1 -0
  58. package/dist/atlas/oscillators/pendulum-motion.d.ts +38 -0
  59. package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -0
  60. package/dist/atlas/oscillators/pendulum-motion.js +122 -0
  61. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -0
  62. package/dist/atlas/oscillators/phase-carriage.d.ts +38 -0
  63. package/dist/atlas/oscillators/phase-carriage.d.ts.map +1 -0
  64. package/dist/atlas/oscillators/phase-carriage.js +96 -0
  65. package/dist/atlas/oscillators/phase-carriage.js.map +1 -0
  66. package/dist/atlas/oscillators/phase-translation.d.ts +46 -0
  67. package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -0
  68. package/dist/atlas/oscillators/phase-translation.js +178 -0
  69. package/dist/atlas/oscillators/phase-translation.js.map +1 -0
  70. package/dist/atlas/oscillators/position-translation.d.ts +59 -0
  71. package/dist/atlas/oscillators/position-translation.d.ts.map +1 -0
  72. package/dist/atlas/oscillators/position-translation.js +254 -0
  73. package/dist/atlas/oscillators/position-translation.js.map +1 -0
  74. package/dist/atlas/path-bound.d.ts +126 -9
  75. package/dist/atlas/path-bound.d.ts.map +1 -1
  76. package/dist/atlas/path-bound.js +372 -23
  77. package/dist/atlas/path-bound.js.map +1 -1
  78. package/dist/atlas/physjs-ref.d.ts +112 -0
  79. package/dist/atlas/physjs-ref.d.ts.map +1 -0
  80. package/dist/atlas/physjs-ref.js +842 -0
  81. package/dist/atlas/physjs-ref.js.map +1 -0
  82. package/dist/atlas/regime.d.ts +12 -136
  83. package/dist/atlas/regime.d.ts.map +1 -1
  84. package/dist/atlas/regime.js +8 -254
  85. package/dist/atlas/regime.js.map +1 -1
  86. package/dist/atlas/serialize.d.ts.map +1 -1
  87. package/dist/atlas/serialize.js +25 -0
  88. package/dist/atlas/serialize.js.map +1 -1
  89. package/dist/atlas/translation-registry.d.ts +22 -0
  90. package/dist/atlas/translation-registry.d.ts.map +1 -0
  91. package/dist/atlas/translation-registry.js +31 -0
  92. package/dist/atlas/translation-registry.js.map +1 -0
  93. package/dist/atlas/translation.d.ts +116 -0
  94. package/dist/atlas/translation.d.ts.map +1 -0
  95. package/dist/atlas/translation.js +34 -0
  96. package/dist/atlas/translation.js.map +1 -0
  97. package/dist/atlas/types.d.ts +74 -240
  98. package/dist/atlas/types.d.ts.map +1 -1
  99. package/dist/atlas/types.js +5 -37
  100. package/dist/atlas/types.js.map +1 -1
  101. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  102. package/dist/atlas/waves/bridges-closure.js +4 -0
  103. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  104. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  105. package/dist/atlas/waves/bridges.js +3 -0
  106. package/dist/atlas/waves/bridges.js.map +1 -1
  107. package/dist/atlas/waves/models.js +1 -1
  108. package/dist/atlas/waves/models.js.map +1 -1
  109. package/dist/atlas/witness-dominance.d.ts +50 -0
  110. package/dist/atlas/witness-dominance.d.ts.map +1 -0
  111. package/dist/atlas/witness-dominance.js +86 -0
  112. package/dist/atlas/witness-dominance.js.map +1 -0
  113. package/dist/atlas/witness-specs.d.ts +30 -0
  114. package/dist/atlas/witness-specs.d.ts.map +1 -1
  115. package/dist/atlas/witness-specs.js +107 -0
  116. package/dist/atlas/witness-specs.js.map +1 -1
  117. package/dist/bridges/be53-yang-mills-confrontation.d.ts +81 -0
  118. package/dist/bridges/be53-yang-mills-confrontation.d.ts.map +1 -0
  119. package/dist/bridges/be53-yang-mills-confrontation.js +110 -0
  120. package/dist/bridges/be53-yang-mills-confrontation.js.map +1 -0
  121. package/dist/bridges/confrontations.d.ts +1 -1
  122. package/dist/bridges/confrontations.d.ts.map +1 -1
  123. package/dist/bridges/confrontations.js +291 -3
  124. package/dist/bridges/confrontations.js.map +1 -1
  125. package/dist/bridges/equations/be-13-einstein-trace.d.ts +2 -3
  126. package/dist/bridges/equations/be-13-einstein-trace.d.ts.map +1 -1
  127. package/dist/bridges/equations/be-13-einstein-trace.js +2 -3
  128. package/dist/bridges/equations/be-13-einstein-trace.js.map +1 -1
  129. package/dist/bridges/equations/be-38-mond.d.ts +7 -5
  130. package/dist/bridges/equations/be-38-mond.d.ts.map +1 -1
  131. package/dist/bridges/equations/be-38-mond.js +7 -5
  132. package/dist/bridges/equations/be-38-mond.js.map +1 -1
  133. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts +21 -0
  134. package/dist/bridges/equations/be-53-yang-mills-beta.d.ts.map +1 -1
  135. package/dist/bridges/equations/be-53-yang-mills-beta.js +12 -0
  136. package/dist/bridges/equations/be-53-yang-mills-beta.js.map +1 -1
  137. package/dist/bridges/evaluator-inputs.d.ts +21 -0
  138. package/dist/bridges/evaluator-inputs.d.ts.map +1 -0
  139. package/dist/bridges/evaluator-inputs.js +75 -0
  140. package/dist/bridges/evaluator-inputs.js.map +1 -0
  141. package/dist/bridges/evaluators.d.ts +38 -0
  142. package/dist/bridges/evaluators.d.ts.map +1 -1
  143. package/dist/bridges/evaluators.js +41 -15
  144. package/dist/bridges/evaluators.js.map +1 -1
  145. package/dist/bridges/gravitational-lensing.d.ts +1 -1
  146. package/dist/bridges/gravitational-lensing.js +1 -1
  147. package/dist/bridges/index.d.ts +1 -1
  148. package/dist/bridges/index.d.ts.map +1 -1
  149. package/dist/bridges/index.js +13 -13
  150. package/dist/bridges/index.js.map +1 -1
  151. package/dist/bridges/observations/types.d.ts +110 -2
  152. package/dist/bridges/observations/types.d.ts.map +1 -1
  153. package/dist/bridges/observations/types.js +29 -0
  154. package/dist/bridges/observations/types.js.map +1 -1
  155. package/dist/bridges/perihelion-precession.d.ts +1 -1
  156. package/dist/bridges/perihelion-precession.js +1 -1
  157. package/dist/canonical/canonical-equation.d.ts +1 -1
  158. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  159. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  160. package/dist/canonical/entries/atomic.js +32 -10
  161. package/dist/canonical/entries/atomic.js.map +1 -1
  162. package/dist/canonical/entries/dimensional-classics.js +2 -2
  163. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  164. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  165. package/dist/canonical/entries/mechanics.js +10 -6
  166. package/dist/canonical/entries/mechanics.js.map +1 -1
  167. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  168. package/dist/canonical/entries/relativity.js +41 -8
  169. package/dist/canonical/entries/relativity.js.map +1 -1
  170. package/dist/canonical/entries/thermo-nuclear-cosmo.js +5 -5
  171. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  172. package/dist/canonical/linkage.d.ts.map +1 -1
  173. package/dist/canonical/linkage.js +14 -8
  174. package/dist/canonical/linkage.js.map +1 -1
  175. package/dist/canonical/normal-form.d.ts +17 -0
  176. package/dist/canonical/normal-form.d.ts.map +1 -1
  177. package/dist/canonical/normal-form.js +21 -4
  178. package/dist/canonical/normal-form.js.map +1 -1
  179. package/dist/cases/brownian-sphere.d.ts +68 -0
  180. package/dist/cases/brownian-sphere.d.ts.map +1 -0
  181. package/dist/cases/brownian-sphere.js +353 -0
  182. package/dist/cases/brownian-sphere.js.map +1 -0
  183. package/dist/cases/damped-resonator.d.ts +23 -0
  184. package/dist/cases/damped-resonator.d.ts.map +1 -0
  185. package/dist/cases/damped-resonator.js +224 -0
  186. package/dist/cases/damped-resonator.js.map +1 -0
  187. package/dist/cases/index.d.ts +11 -0
  188. package/dist/cases/index.d.ts.map +1 -0
  189. package/dist/cases/index.js +29 -0
  190. package/dist/cases/index.js.map +1 -0
  191. package/dist/cases/kepler-rv.d.ts +13 -0
  192. package/dist/cases/kepler-rv.d.ts.map +1 -0
  193. package/dist/cases/kepler-rv.js +168 -0
  194. package/dist/cases/kepler-rv.js.map +1 -0
  195. package/dist/cases/lumped-cooling.d.ts +46 -0
  196. package/dist/cases/lumped-cooling.d.ts.map +1 -0
  197. package/dist/cases/lumped-cooling.js +261 -0
  198. package/dist/cases/lumped-cooling.js.map +1 -0
  199. package/dist/cases/quadrature.d.ts +14 -0
  200. package/dist/cases/quadrature.d.ts.map +1 -0
  201. package/dist/cases/quadrature.js +41 -0
  202. package/dist/cases/quadrature.js.map +1 -0
  203. package/dist/cases/resistor-noise.d.ts +14 -0
  204. package/dist/cases/resistor-noise.d.ts.map +1 -0
  205. package/dist/cases/resistor-noise.js +210 -0
  206. package/dist/cases/resistor-noise.js.map +1 -0
  207. package/dist/cases/skin-depth.d.ts +21 -0
  208. package/dist/cases/skin-depth.d.ts.map +1 -0
  209. package/dist/cases/skin-depth.js +174 -0
  210. package/dist/cases/skin-depth.js.map +1 -0
  211. package/dist/cases/types.d.ts +115 -0
  212. package/dist/cases/types.d.ts.map +1 -0
  213. package/dist/cases/types.js +20 -0
  214. package/dist/cases/types.js.map +1 -0
  215. package/dist/cli/commands/_atlas-map.d.ts +409 -0
  216. package/dist/cli/commands/_atlas-map.d.ts.map +1 -0
  217. package/dist/cli/commands/_atlas-map.js +1014 -0
  218. package/dist/cli/commands/_atlas-map.js.map +1 -0
  219. package/dist/cli/commands/_atlas-route.d.ts +111 -0
  220. package/dist/cli/commands/_atlas-route.d.ts.map +1 -0
  221. package/dist/cli/commands/_atlas-route.js +140 -0
  222. package/dist/cli/commands/_atlas-route.js.map +1 -0
  223. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  224. package/dist/cli/commands/_discovery-opts.js +10 -1
  225. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  226. package/dist/cli/commands/atlas.d.ts +20 -0
  227. package/dist/cli/commands/atlas.d.ts.map +1 -1
  228. package/dist/cli/commands/atlas.js +333 -19
  229. package/dist/cli/commands/atlas.js.map +1 -1
  230. package/dist/cli/commands/audit.d.ts.map +1 -1
  231. package/dist/cli/commands/audit.js +12 -3
  232. package/dist/cli/commands/audit.js.map +1 -1
  233. package/dist/cli/commands/axes.js +4 -4
  234. package/dist/cli/commands/candidates.d.ts.map +1 -1
  235. package/dist/cli/commands/candidates.js +3 -2
  236. package/dist/cli/commands/candidates.js.map +1 -1
  237. package/dist/cli/commands/canonical.d.ts.map +1 -1
  238. package/dist/cli/commands/canonical.js +39 -10
  239. package/dist/cli/commands/canonical.js.map +1 -1
  240. package/dist/cli/commands/confront.d.ts.map +1 -1
  241. package/dist/cli/commands/confront.js +210 -28
  242. package/dist/cli/commands/confront.js.map +1 -1
  243. package/dist/cli/commands/connectors.d.ts.map +1 -1
  244. package/dist/cli/commands/connectors.js +5 -4
  245. package/dist/cli/commands/connectors.js.map +1 -1
  246. package/dist/cli/commands/coverage.js +3 -3
  247. package/dist/cli/commands/derive.d.ts.map +1 -1
  248. package/dist/cli/commands/derive.js +21 -9
  249. package/dist/cli/commands/derive.js.map +1 -1
  250. package/dist/cli/commands/discover.d.ts.map +1 -1
  251. package/dist/cli/commands/discover.js +149 -32
  252. package/dist/cli/commands/discover.js.map +1 -1
  253. package/dist/cli/commands/eval.d.ts.map +1 -1
  254. package/dist/cli/commands/eval.js +76 -17
  255. package/dist/cli/commands/eval.js.map +1 -1
  256. package/dist/cli/commands/evaluate.d.ts +30 -0
  257. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  258. package/dist/cli/commands/evaluate.js +440 -25
  259. package/dist/cli/commands/evaluate.js.map +1 -1
  260. package/dist/cli/commands/explain.d.ts.map +1 -1
  261. package/dist/cli/commands/explain.js +38 -11
  262. package/dist/cli/commands/explain.js.map +1 -1
  263. package/dist/cli/commands/frontier.d.ts +3 -0
  264. package/dist/cli/commands/frontier.d.ts.map +1 -0
  265. package/dist/cli/commands/frontier.js +28 -0
  266. package/dist/cli/commands/frontier.js.map +1 -0
  267. package/dist/cli/commands/ground.d.ts.map +1 -1
  268. package/dist/cli/commands/ground.js +37 -12
  269. package/dist/cli/commands/ground.js.map +1 -1
  270. package/dist/cli/commands/index.d.ts +5 -0
  271. package/dist/cli/commands/index.d.ts.map +1 -1
  272. package/dist/cli/commands/index.js +5 -0
  273. package/dist/cli/commands/index.js.map +1 -1
  274. package/dist/cli/commands/map.d.ts +8 -0
  275. package/dist/cli/commands/map.d.ts.map +1 -1
  276. package/dist/cli/commands/map.js +385 -57
  277. package/dist/cli/commands/map.js.map +1 -1
  278. package/dist/cli/commands/metric.d.ts +3 -0
  279. package/dist/cli/commands/metric.d.ts.map +1 -0
  280. package/dist/cli/commands/metric.js +136 -0
  281. package/dist/cli/commands/metric.js.map +1 -0
  282. package/dist/cli/commands/path.d.ts +109 -1
  283. package/dist/cli/commands/path.d.ts.map +1 -1
  284. package/dist/cli/commands/path.js +1019 -109
  285. package/dist/cli/commands/path.js.map +1 -1
  286. package/dist/cli/commands/predict.d.ts.map +1 -1
  287. package/dist/cli/commands/predict.js +3 -2
  288. package/dist/cli/commands/predict.js.map +1 -1
  289. package/dist/cli/commands/priority.d.ts.map +1 -1
  290. package/dist/cli/commands/priority.js +3 -2
  291. package/dist/cli/commands/priority.js.map +1 -1
  292. package/dist/cli/commands/probe.d.ts +7 -0
  293. package/dist/cli/commands/probe.d.ts.map +1 -1
  294. package/dist/cli/commands/probe.js +234 -52
  295. package/dist/cli/commands/probe.js.map +1 -1
  296. package/dist/cli/commands/recover.d.ts.map +1 -1
  297. package/dist/cli/commands/recover.js +17 -6
  298. package/dist/cli/commands/recover.js.map +1 -1
  299. package/dist/cli/commands/regime.d.ts +1 -1
  300. package/dist/cli/commands/regime.d.ts.map +1 -1
  301. package/dist/cli/commands/regime.js +134 -33
  302. package/dist/cli/commands/regime.js.map +1 -1
  303. package/dist/cli/commands/retrieve.d.ts +3 -0
  304. package/dist/cli/commands/retrieve.d.ts.map +1 -0
  305. package/dist/cli/commands/retrieve.js +65 -0
  306. package/dist/cli/commands/retrieve.js.map +1 -0
  307. package/dist/cli/commands/search.d.ts +3 -0
  308. package/dist/cli/commands/search.d.ts.map +1 -0
  309. package/dist/cli/commands/search.js +70 -0
  310. package/dist/cli/commands/search.js.map +1 -0
  311. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  312. package/dist/cli/commands/symbolic.js +107 -16
  313. package/dist/cli/commands/symbolic.js.map +1 -1
  314. package/dist/cli/commands/testplan.d.ts +3 -0
  315. package/dist/cli/commands/testplan.d.ts.map +1 -0
  316. package/dist/cli/commands/testplan.js +131 -0
  317. package/dist/cli/commands/testplan.js.map +1 -0
  318. package/dist/cli/conventions.d.ts +22 -0
  319. package/dist/cli/conventions.d.ts.map +1 -0
  320. package/dist/cli/conventions.js +48 -0
  321. package/dist/cli/conventions.js.map +1 -0
  322. package/dist/cli/euler-guard.d.ts +9 -0
  323. package/dist/cli/euler-guard.d.ts.map +1 -0
  324. package/dist/cli/euler-guard.js +11 -0
  325. package/dist/cli/euler-guard.js.map +1 -0
  326. package/dist/cli/eval-numbers.d.ts +26 -0
  327. package/dist/cli/eval-numbers.d.ts.map +1 -0
  328. package/dist/cli/eval-numbers.js +49 -0
  329. package/dist/cli/eval-numbers.js.map +1 -0
  330. package/dist/cli/expr-print.d.ts +25 -0
  331. package/dist/cli/expr-print.d.ts.map +1 -0
  332. package/dist/cli/expr-print.js +123 -0
  333. package/dist/cli/expr-print.js.map +1 -0
  334. package/dist/cli/graphs.d.ts +26 -0
  335. package/dist/cli/graphs.d.ts.map +1 -1
  336. package/dist/cli/graphs.js +19 -0
  337. package/dist/cli/graphs.js.map +1 -1
  338. package/dist/cli/main.d.ts +4 -10
  339. package/dist/cli/main.d.ts.map +1 -1
  340. package/dist/cli/main.js +370 -167
  341. package/dist/cli/main.js.map +1 -1
  342. package/dist/cli/map-evidence.d.ts +47 -0
  343. package/dist/cli/map-evidence.d.ts.map +1 -0
  344. package/dist/cli/map-evidence.js +53 -0
  345. package/dist/cli/map-evidence.js.map +1 -0
  346. package/dist/cli/output.d.ts +21 -1
  347. package/dist/cli/output.d.ts.map +1 -1
  348. package/dist/cli/output.js +5 -1
  349. package/dist/cli/output.js.map +1 -1
  350. package/dist/{composition → cli}/poster-source.d.ts +3 -2
  351. package/dist/cli/poster-source.d.ts.map +1 -0
  352. package/dist/{composition → cli}/poster-source.js +2 -1
  353. package/dist/cli/poster-source.js.map +1 -0
  354. package/dist/cli/record-reach.d.ts +44 -0
  355. package/dist/cli/record-reach.d.ts.map +1 -0
  356. package/dist/cli/record-reach.js +228 -0
  357. package/dist/cli/record-reach.js.map +1 -0
  358. package/dist/cli/record-tables.d.ts +38 -0
  359. package/dist/cli/record-tables.d.ts.map +1 -0
  360. package/dist/cli/record-tables.js +110 -0
  361. package/dist/cli/record-tables.js.map +1 -0
  362. package/dist/cli/record.d.ts +141 -0
  363. package/dist/cli/record.d.ts.map +1 -0
  364. package/dist/cli/record.js +612 -0
  365. package/dist/cli/record.js.map +1 -0
  366. package/dist/cli/search-index.d.ts +56 -0
  367. package/dist/cli/search-index.d.ts.map +1 -0
  368. package/dist/cli/search-index.js +190 -0
  369. package/dist/cli/search-index.js.map +1 -0
  370. package/dist/cli/statuses.d.ts +25 -0
  371. package/dist/cli/statuses.d.ts.map +1 -0
  372. package/dist/cli/statuses.js +276 -0
  373. package/dist/cli/statuses.js.map +1 -0
  374. package/dist/cli/version.d.ts +8 -0
  375. package/dist/cli/version.d.ts.map +1 -1
  376. package/dist/cli/version.js +32 -1
  377. package/dist/cli/version.js.map +1 -1
  378. package/dist/cli-api.d.ts +33 -15
  379. package/dist/cli-api.d.ts.map +1 -1
  380. package/dist/cli-api.js +31 -11
  381. package/dist/cli-api.js.map +1 -1
  382. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  383. package/dist/composition/bridge-analysis.js +2 -1
  384. package/dist/composition/bridge-analysis.js.map +1 -1
  385. package/dist/composition/canonical-compare.d.ts +29 -16
  386. package/dist/composition/canonical-compare.d.ts.map +1 -1
  387. package/dist/composition/canonical-compare.js +355 -59
  388. package/dist/composition/canonical-compare.js.map +1 -1
  389. package/dist/composition/canonical-graph.d.ts +2 -2
  390. package/dist/composition/canonical-graph.js +3 -3
  391. package/dist/composition/canonical-graph.js.map +1 -1
  392. package/dist/composition/canonical-prefactors.d.ts +24 -1
  393. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  394. package/dist/composition/canonical-prefactors.js +97 -1
  395. package/dist/composition/canonical-prefactors.js.map +1 -1
  396. package/dist/composition/compose-symbolic.js +1 -1
  397. package/dist/composition/compose-symbolic.js.map +1 -1
  398. package/dist/composition/compose.d.ts.map +1 -1
  399. package/dist/composition/compose.js +17 -9
  400. package/dist/composition/compose.js.map +1 -1
  401. package/dist/composition/composition-recovery.d.ts +47 -0
  402. package/dist/composition/composition-recovery.d.ts.map +1 -0
  403. package/dist/composition/composition-recovery.js +77 -0
  404. package/dist/composition/composition-recovery.js.map +1 -0
  405. package/dist/composition/consequence.d.ts +39 -0
  406. package/dist/composition/consequence.d.ts.map +1 -1
  407. package/dist/composition/consequence.js +37 -0
  408. package/dist/composition/consequence.js.map +1 -1
  409. package/dist/composition/discovery.d.ts +20 -0
  410. package/dist/composition/discovery.d.ts.map +1 -1
  411. package/dist/composition/discovery.js +27 -5
  412. package/dist/composition/discovery.js.map +1 -1
  413. package/dist/composition/edge.d.ts +1 -1
  414. package/dist/composition/edge.d.ts.map +1 -1
  415. package/dist/composition/edge.js.map +1 -1
  416. package/dist/composition/edges/_catalog-helpers.d.ts +4 -0
  417. package/dist/composition/edges/_catalog-helpers.d.ts.map +1 -1
  418. package/dist/composition/edges/_catalog-helpers.js +15 -0
  419. package/dist/composition/edges/_catalog-helpers.js.map +1 -1
  420. package/dist/composition/edges/calibration.d.ts.map +1 -1
  421. package/dist/composition/edges/calibration.js +57 -0
  422. package/dist/composition/edges/calibration.js.map +1 -1
  423. package/dist/composition/edges/catalog-fields.d.ts.map +1 -1
  424. package/dist/composition/edges/catalog-fields.js +2 -1
  425. package/dist/composition/edges/catalog-fields.js.map +1 -1
  426. package/dist/composition/edges/catalog-gravitation-cosmology.d.ts.map +1 -1
  427. package/dist/composition/edges/catalog-gravitation-cosmology.js +2 -1
  428. package/dist/composition/edges/catalog-gravitation-cosmology.js.map +1 -1
  429. package/dist/composition/edges/catalog-quantum.d.ts.map +1 -1
  430. package/dist/composition/edges/catalog-quantum.js +26 -0
  431. package/dist/composition/edges/catalog-quantum.js.map +1 -1
  432. package/dist/composition/edges/catalog-tranche.d.ts.map +1 -1
  433. package/dist/composition/edges/catalog-tranche.js +2 -1
  434. package/dist/composition/edges/catalog-tranche.js.map +1 -1
  435. package/dist/composition/expr-eval.d.ts.map +1 -1
  436. package/dist/composition/expr-eval.js +4 -1
  437. package/dist/composition/expr-eval.js.map +1 -1
  438. package/dist/composition/expr-simplify.js +1 -1
  439. package/dist/composition/expr-simplify.js.map +1 -1
  440. package/dist/composition/frontier-account.d.ts +78 -0
  441. package/dist/composition/frontier-account.d.ts.map +1 -0
  442. package/dist/composition/frontier-account.js +127 -0
  443. package/dist/composition/frontier-account.js.map +1 -0
  444. package/dist/composition/graph-viz.d.ts +7 -22
  445. package/dist/composition/graph-viz.d.ts.map +1 -1
  446. package/dist/composition/graph-viz.js +4 -27
  447. package/dist/composition/graph-viz.js.map +1 -1
  448. package/dist/composition/grounding.d.ts +49 -0
  449. package/dist/composition/grounding.d.ts.map +1 -1
  450. package/dist/composition/grounding.js +38 -0
  451. package/dist/composition/grounding.js.map +1 -1
  452. package/dist/composition/index.d.ts +0 -2
  453. package/dist/composition/index.d.ts.map +1 -1
  454. package/dist/composition/index.js +1 -1
  455. package/dist/composition/index.js.map +1 -1
  456. package/dist/composition/probe/expression-gaps.d.ts +27 -0
  457. package/dist/composition/probe/expression-gaps.d.ts.map +1 -0
  458. package/dist/composition/probe/expression-gaps.js +47 -0
  459. package/dist/composition/probe/expression-gaps.js.map +1 -0
  460. package/dist/composition/probe/frontier.d.ts +2 -1
  461. package/dist/composition/probe/frontier.d.ts.map +1 -1
  462. package/dist/composition/probe/frontier.js +3 -2
  463. package/dist/composition/probe/frontier.js.map +1 -1
  464. package/dist/composition/probe/index.d.ts +4 -1
  465. package/dist/composition/probe/index.d.ts.map +1 -1
  466. package/dist/composition/probe/index.js +3 -1
  467. package/dist/composition/probe/index.js.map +1 -1
  468. package/dist/composition/probe/pipeline.d.ts +2 -0
  469. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  470. package/dist/composition/probe/pipeline.js +6 -2
  471. package/dist/composition/probe/pipeline.js.map +1 -1
  472. package/dist/composition/probe/problem.d.ts +7 -0
  473. package/dist/composition/probe/problem.d.ts.map +1 -1
  474. package/dist/composition/probe/problem.js +15 -5
  475. package/dist/composition/probe/problem.js.map +1 -1
  476. package/dist/composition/probe/search-budget.d.ts.map +1 -1
  477. package/dist/composition/probe/search-budget.js +6 -2
  478. package/dist/composition/probe/search-budget.js.map +1 -1
  479. package/dist/composition/probe/study.d.ts +340 -0
  480. package/dist/composition/probe/study.d.ts.map +1 -0
  481. package/dist/composition/probe/study.js +1519 -0
  482. package/dist/composition/probe/study.js.map +1 -0
  483. package/dist/composition/proposed-bridges.js +1 -1
  484. package/dist/composition/proposed-bridges.js.map +1 -1
  485. package/dist/composition/quantities.d.ts +4 -16
  486. package/dist/composition/quantities.d.ts.map +1 -1
  487. package/dist/composition/quantities.js +4 -16
  488. package/dist/composition/quantities.js.map +1 -1
  489. package/dist/composition/retrodiction.d.ts.map +1 -1
  490. package/dist/composition/retrodiction.js +6 -2
  491. package/dist/composition/retrodiction.js.map +1 -1
  492. package/dist/composition/uncertainty.d.ts +1 -1
  493. package/dist/composition/uncertainty.d.ts.map +1 -1
  494. package/dist/composition/user-equation.d.ts +79 -8
  495. package/dist/composition/user-equation.d.ts.map +1 -1
  496. package/dist/composition/user-equation.js +224 -32
  497. package/dist/composition/user-equation.js.map +1 -1
  498. package/dist/core/constants.d.ts +9 -4
  499. package/dist/core/constants.d.ts.map +1 -1
  500. package/dist/core/constants.js +9 -4
  501. package/dist/core/constants.js.map +1 -1
  502. package/dist/core/types.d.ts +1 -1
  503. package/dist/core/types.d.ts.map +1 -1
  504. package/dist/core/types.js +2 -1
  505. package/dist/core/types.js.map +1 -1
  506. package/dist/dimensional/curvature.d.ts +7 -56
  507. package/dist/dimensional/curvature.d.ts.map +1 -1
  508. package/dist/dimensional/curvature.js +7 -76
  509. package/dist/dimensional/curvature.js.map +1 -1
  510. package/dist/dimensional/dimension-spec.d.ts +7 -1
  511. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  512. package/dist/dimensional/dimension-spec.js +131 -3
  513. package/dist/dimensional/dimension-spec.js.map +1 -1
  514. package/dist/dimensional/formula-names.d.ts +30 -0
  515. package/dist/dimensional/formula-names.d.ts.map +1 -0
  516. package/dist/dimensional/formula-names.js +37 -0
  517. package/dist/dimensional/formula-names.js.map +1 -0
  518. package/dist/dimensional/natural-units.d.ts +33 -0
  519. package/dist/dimensional/natural-units.d.ts.map +1 -0
  520. package/dist/dimensional/natural-units.js +58 -0
  521. package/dist/dimensional/natural-units.js.map +1 -0
  522. package/dist/{composition → dimensional}/symbolic-constants.d.ts +21 -2
  523. package/dist/dimensional/symbolic-constants.d.ts.map +1 -0
  524. package/dist/dimensional/symbolic-constants.js +116 -0
  525. package/dist/dimensional/symbolic-constants.js.map +1 -0
  526. package/dist/dimensional/unit-convention.d.ts +30 -0
  527. package/dist/dimensional/unit-convention.d.ts.map +1 -0
  528. package/dist/dimensional/unit-convention.js +60 -0
  529. package/dist/dimensional/unit-convention.js.map +1 -0
  530. package/dist/dimensional/units.d.ts +43 -0
  531. package/dist/dimensional/units.d.ts.map +1 -0
  532. package/dist/dimensional/units.js +197 -0
  533. package/dist/dimensional/units.js.map +1 -0
  534. package/dist/index.d.ts +8 -4
  535. package/dist/index.d.ts.map +1 -1
  536. package/dist/index.js +7 -3
  537. package/dist/index.js.map +1 -1
  538. package/dist/numerical/bianchi-residual.d.ts +55 -0
  539. package/dist/numerical/bianchi-residual.d.ts.map +1 -0
  540. package/dist/numerical/bianchi-residual.js +79 -0
  541. package/dist/numerical/bianchi-residual.js.map +1 -0
  542. package/dist/numerical/binding-value.d.ts +67 -0
  543. package/dist/numerical/binding-value.d.ts.map +1 -0
  544. package/dist/numerical/binding-value.js +347 -0
  545. package/dist/numerical/binding-value.js.map +1 -0
  546. package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
  547. package/dist/numerical/connection-lowering-helpers.js +13 -26
  548. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  549. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  550. package/dist/numerical/curvature-lowering-helpers.js +9 -0
  551. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  552. package/dist/numerical/float64-engine.d.ts.map +1 -1
  553. package/dist/numerical/float64-engine.js +23 -16
  554. package/dist/numerical/float64-engine.js.map +1 -1
  555. package/dist/numerical/formula-dimension.d.ts +7 -0
  556. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  557. package/dist/numerical/formula-dimension.js +23 -6
  558. package/dist/numerical/formula-dimension.js.map +1 -1
  559. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  560. package/dist/numerical/formula-mathts.js +68 -6
  561. package/dist/numerical/formula-mathts.js.map +1 -1
  562. package/dist/numerical/formula.d.ts +27 -0
  563. package/dist/numerical/formula.d.ts.map +1 -1
  564. package/dist/numerical/formula.js +68 -6
  565. package/dist/numerical/formula.js.map +1 -1
  566. package/dist/numerical/spacetime-metrics.d.ts +243 -0
  567. package/dist/numerical/spacetime-metrics.d.ts.map +1 -0
  568. package/dist/numerical/spacetime-metrics.js +1056 -0
  569. package/dist/numerical/spacetime-metrics.js.map +1 -0
  570. package/dist/relations/composition-table.d.ts +61 -0
  571. package/dist/relations/composition-table.d.ts.map +1 -0
  572. package/dist/relations/composition-table.js +140 -0
  573. package/dist/relations/composition-table.js.map +1 -0
  574. package/dist/relations/conventions.d.ts +63 -0
  575. package/dist/relations/conventions.d.ts.map +1 -0
  576. package/dist/relations/conventions.js +93 -0
  577. package/dist/relations/conventions.js.map +1 -0
  578. package/dist/relations/regime.d.ts +159 -0
  579. package/dist/relations/regime.d.ts.map +1 -0
  580. package/dist/relations/regime.js +304 -0
  581. package/dist/relations/regime.js.map +1 -0
  582. package/dist/relations/types.d.ts +259 -0
  583. package/dist/relations/types.d.ts.map +1 -0
  584. package/dist/relations/types.js +37 -0
  585. package/dist/relations/types.js.map +1 -0
  586. package/package.json +166 -163
  587. package/dist/composition/poster-source.d.ts.map +0 -1
  588. package/dist/composition/poster-source.js.map +0 -1
  589. package/dist/composition/symbolic-constants.d.ts.map +0 -1
  590. package/dist/composition/symbolic-constants.js +0 -65
  591. package/dist/composition/symbolic-constants.js.map +0 -1
@@ -0,0 +1,842 @@
1
+ /**
2
+ * Reviewed `formalRef`s keyed by the vendored PhysJS bridge manifest.
3
+ *
4
+ * The manifest file is `formal/physjs/manifest.json` (PhysJS `manifest/bridges.json`
5
+ * at the commit below). This module is the copy the library ships: `src/` cannot
6
+ * import a file outside its root. `tests/atlas/physjs-manifest.test.ts` fails when
7
+ * the file and this copy disagree on the commit, a theorem, a key, or the
8
+ * coverage phrase.
9
+ *
10
+ * The commit is PhysJS `main` `dd35202920bf19c39f71f15d9ee740a6d28ec173`.
11
+ * Milestone 1's six top-level theorems are unchanged. Milestone 2 adds four
12
+ * atlas entries. Milestone 2b adds fifteen catalog entries. Bucket A adds
13
+ * twenty-one counted catalog entries, keyed `be-<n>`. BE-20 is the nested
14
+ * `corollary` on `be-13` and has no key. A counted covers line begins with
15
+ * `reduction`, `limit`, or `derivation-step`. A labeled covers line begins
16
+ * with `property` or `cross-check`. A nested object (`planeWave`, `oneLoop`,
17
+ * `inversion`, `vacuum`, `corollary`, `friedmann`, `lengthMonomial`,
18
+ * `torsionMonomial`, `coefficientNotFixed`, `unitCoefficient`, `scalingShape`,
19
+ * `everyPower`) is recorded and is not a `formalRef`.
20
+ *
21
+ * @module atlas/physjs-ref
22
+ */
23
+ /** PhysJS commit the vendored manifest records. @internal */
24
+ export const PHYSJS_COMMIT = 'dd35202920bf19c39f71f15d9ee740a6d28ec173';
25
+ /** Lean toolchain the vendored manifest records. */
26
+ const PHYSJS_TOOLCHAIN = 'leanprover/lean4:v4.34.1';
27
+ /** Mathlib pin the vendored manifest records. */
28
+ const PHYSJS_MATHLIB = 'v4.34.1';
29
+ /** Physlib pin the vendored manifest records. */
30
+ const PHYSJS_PHYS_LIB = 'af484f78ee0701290595f8bf892b157b10d64940';
31
+ /**
32
+ * Every reviewed PhysJS reference covers its statement only. A lemma about
33
+ * `bound.delta` does not certify the regime, the horizon, or the side conditions.
34
+ */
35
+ const PHYSJS_COVERAGE = 'covers its statement only';
36
+ /** Axioms `#print axioms` reported for every entry at the pinned commit. */
37
+ const PHYSJS_AXIOMS = ['propext', 'Classical.choice', 'Quot.sound'];
38
+ /** Nested objects the manifest schema records. A new name is a problem. */
39
+ const NESTED_FIELDS = [
40
+ 'planeWave',
41
+ 'oneLoop',
42
+ 'inversion',
43
+ 'vacuum',
44
+ 'corollary',
45
+ 'friedmann',
46
+ 'lengthMonomial',
47
+ 'torsionMonomial',
48
+ 'coefficientNotFixed',
49
+ 'unitCoefficient',
50
+ 'scalingShape',
51
+ 'everyPower',
52
+ ];
53
+ const ENTRY_FIELDS = new Set([
54
+ 'key',
55
+ 'bridgeId',
56
+ 'theorem',
57
+ 'covers',
58
+ 'coverage',
59
+ 'leanProof',
60
+ 'axioms',
61
+ 'imports',
62
+ ...NESTED_FIELDS,
63
+ ]);
64
+ /** Counted catalog kinds. Not a property and not a cross-check. */
65
+ const COUNTED_KIND = /^(reduction|limit|derivation-step): /;
66
+ /**
67
+ * Labeled catalog kinds. A reader tells them from a counted statement by
68
+ * this word. They occupy a catalog `formalRef` and are not the counted kind.
69
+ */
70
+ const LABELED_KIND = /^(property|cross-check): /;
71
+ const RANK1_COVERS = 'bound.delta exactly, at the dispersion relation';
72
+ const PLANE_WAVE_COVERS = 'a plane wave solves the PDE iff ω(k) obeys the dispersion relation';
73
+ /**
74
+ * Rank 1a, nested on a rank-1 entry. A plane wave solves the PDE if and only
75
+ * if its frequency obeys the dispersion relation. It is not the entry's
76
+ * `formalRef`: that decision is the owner's.
77
+ */
78
+ function planeWave(namespace) {
79
+ return {
80
+ theorem: `PhysJS.${namespace}.planeWave_iff_dispersion`,
81
+ covers: PLANE_WAVE_COVERS,
82
+ coverage: PHYSJS_COVERAGE,
83
+ leanProof: 'complete',
84
+ axioms: PHYSJS_AXIOMS,
85
+ };
86
+ }
87
+ /**
88
+ * The forty-six entries, in manifest order. A bridge obtains its reference by key
89
+ * through {@link physjsFormalRef}; it does not name a theorem of its own.
90
+ * A nested object is recorded and is not that reference.
91
+ */
92
+ const PHYSJS_ENTRIES = [
93
+ {
94
+ key: 'ab-kg-schrodinger',
95
+ bridgeId: 'ab-kg-schrodinger',
96
+ theorem: 'PhysJS.KgSchrodinger.covers_bound_delta',
97
+ covers: RANK1_COVERS,
98
+ coverage: PHYSJS_COVERAGE,
99
+ leanProof: 'complete',
100
+ axioms: PHYSJS_AXIOMS,
101
+ planeWave: planeWave('KgSchrodinger'),
102
+ },
103
+ {
104
+ key: 'ab-klein-gordon-wave',
105
+ bridgeId: 'ab-klein-gordon-wave',
106
+ theorem: 'PhysJS.KleinGordonWave.covers_bound_delta',
107
+ covers: RANK1_COVERS,
108
+ coverage: PHYSJS_COVERAGE,
109
+ leanProof: 'complete',
110
+ axioms: PHYSJS_AXIOMS,
111
+ planeWave: planeWave('KleinGordonWave'),
112
+ },
113
+ {
114
+ key: 'ab-stiff-string',
115
+ bridgeId: 'ab-stiff-string',
116
+ theorem: 'PhysJS.StiffString.covers_bound_delta',
117
+ covers: RANK1_COVERS,
118
+ coverage: PHYSJS_COVERAGE,
119
+ leanProof: 'complete',
120
+ axioms: PHYSJS_AXIOMS,
121
+ planeWave: planeWave('StiffString'),
122
+ },
123
+ {
124
+ key: 'ab-telegraph-diffusion',
125
+ bridgeId: 'ab-telegraph-diffusion',
126
+ theorem: 'PhysJS.TelegraphDiffusion.covers_bound_delta',
127
+ covers: RANK1_COVERS,
128
+ coverage: PHYSJS_COVERAGE,
129
+ leanProof: 'complete',
130
+ axioms: PHYSJS_AXIOMS,
131
+ planeWave: planeWave('TelegraphDiffusion'),
132
+ },
133
+ {
134
+ key: 'ab-telegraph-wave',
135
+ bridgeId: 'ab-telegraph-wave',
136
+ theorem: 'PhysJS.TelegraphWave.covers_bound_delta',
137
+ covers: RANK1_COVERS,
138
+ coverage: PHYSJS_COVERAGE,
139
+ leanProof: 'complete',
140
+ axioms: PHYSJS_AXIOMS,
141
+ planeWave: planeWave('TelegraphWave'),
142
+ },
143
+ {
144
+ key: 'ab-pendulum-linear',
145
+ bridgeId: 'ab-pendulum-linear',
146
+ theorem: 'PhysJS.Pendulum.linearizedEquationOfMotion_iff',
147
+ covers: 'the transformation, not bound.delta',
148
+ coverage: PHYSJS_COVERAGE,
149
+ leanProof: 'complete',
150
+ imports: 'ClassicalMechanics.SimplePendulum.linearizedEquationOfMotion_iff',
151
+ axioms: PHYSJS_AXIOMS,
152
+ },
153
+ {
154
+ key: 'ab-kg-oscillator',
155
+ bridgeId: 'ab-kg-oscillator',
156
+ theorem: 'PhysJS.KgOscillator.uniform_solves_equationOfMotion',
157
+ covers: "the restriction, in Physlib's own terms",
158
+ coverage: PHYSJS_COVERAGE,
159
+ leanProof: 'complete',
160
+ axioms: PHYSJS_AXIOMS,
161
+ },
162
+ {
163
+ key: 'ab-spring-lc',
164
+ bridgeId: 'ab-spring-lc',
165
+ theorem: 'PhysJS.SpringLc.time_rescale_equationOfMotion',
166
+ covers: 'the oscillator dictionary',
167
+ coverage: PHYSJS_COVERAGE,
168
+ leanProof: 'complete',
169
+ axioms: PHYSJS_AXIOMS,
170
+ },
171
+ {
172
+ key: 'ab-damped-rlc',
173
+ bridgeId: 'ab-damped-rlc',
174
+ theorem: 'PhysJS.DampedRlc.time_rescale_equationOfMotion',
175
+ covers: 'the oscillator dictionary',
176
+ coverage: PHYSJS_COVERAGE,
177
+ leanProof: 'complete',
178
+ axioms: PHYSJS_AXIOMS,
179
+ },
180
+ {
181
+ key: 'ab-wave-dalembert',
182
+ bridgeId: 'ab-wave-dalembert',
183
+ theorem: 'PhysJS.WaveDalembert.solution_eq_profiles',
184
+ covers: "the missing direction of d'Alembert's formula",
185
+ coverage: PHYSJS_COVERAGE,
186
+ leanProof: 'complete',
187
+ axioms: PHYSJS_AXIOMS,
188
+ },
189
+ {
190
+ key: 'be-64',
191
+ bridgeId: 'be-64',
192
+ theorem: 'PhysJS.Eddington.balance_iff',
193
+ covers: 'derivation-step: the r² cancellation in the Eddington force balance, not a hard cap',
194
+ coverage: PHYSJS_COVERAGE,
195
+ leanProof: 'complete',
196
+ axioms: PHYSJS_AXIOMS,
197
+ },
198
+ {
199
+ key: 'be-53',
200
+ bridgeId: 'be-53',
201
+ theorem: 'PhysJS.YangMills.b0_pos_iff_nf_le',
202
+ covers: 'derivation-step: b₀ > 0 iff N_f ≤ 16 for SU(3), not a running procedure past one loop',
203
+ coverage: PHYSJS_COVERAGE,
204
+ leanProof: 'complete',
205
+ axioms: PHYSJS_AXIOMS,
206
+ oneLoop: {
207
+ theorem: 'PhysJS.YangMills.alphaRun_hasDerivAt',
208
+ covers: 'derivation-step: α(t) = α₀ / (1 + b₀ α₀ t / (2π)) solves the one-loop running equation where the denominator is positive',
209
+ coverage: PHYSJS_COVERAGE,
210
+ leanProof: 'complete',
211
+ axioms: PHYSJS_AXIOMS,
212
+ },
213
+ },
214
+ {
215
+ key: 'be-58',
216
+ bridgeId: 'be-58',
217
+ theorem: 'PhysJS.JohnsonNyquist.tendsto_classical',
218
+ covers: 'limit: the classical Johnson–Nyquist spectrum is the ω → 0⁺ limit of the quantum parent, not the fluctuation–dissipation theorem',
219
+ coverage: PHYSJS_COVERAGE,
220
+ leanProof: 'complete',
221
+ axioms: PHYSJS_AXIOMS,
222
+ },
223
+ {
224
+ key: 'be-38',
225
+ bridgeId: 'be-38',
226
+ theorem: 'PhysJS.Mond.tendsto_nu_limits',
227
+ covers: 'limit: ν → 1 as z → ∞, ν √z → 1 as z → 0⁺, and F_N ν(z) / √(m F_N a₀) → 1 as F_N → 0⁺; not ν → √(2/z), and not the SPARC confrontation',
228
+ coverage: PHYSJS_COVERAGE,
229
+ leanProof: 'complete',
230
+ axioms: PHYSJS_AXIOMS,
231
+ inversion: {
232
+ theorem: 'PhysJS.Mond.mu_inversion',
233
+ covers: 'derivation-step: for z > 0, y = z ν(z) satisfies y² / √(1 + y²) = z, which inverts μ(x) = x / √(1 + x²)',
234
+ coverage: PHYSJS_COVERAGE,
235
+ leanProof: 'complete',
236
+ axioms: PHYSJS_AXIOMS,
237
+ },
238
+ },
239
+ {
240
+ key: 'be-13',
241
+ bridgeId: 'be-13',
242
+ theorem: 'PhysJS.Einstein.trace_eq',
243
+ covers: 'reduction: contracting G_μν + Λ g_μν = κ T_μν in four dimensions gives R = 4Λ − κ T, not Jacobson\'s thermodynamic derivation',
244
+ coverage: PHYSJS_COVERAGE,
245
+ leanProof: 'complete',
246
+ axioms: PHYSJS_AXIOMS,
247
+ vacuum: {
248
+ theorem: 'PhysJS.Einstein.vacuum_density',
249
+ covers: 'reduction: with κ = 8πG/c⁴, T_μν = −ρ c² g_μν and Λ g = −κ T rearrange to ρ = c² Λ / (8π G). The opposite sign does not. This is the BE-20 density; BE-20 has no reference of its own',
250
+ coverage: PHYSJS_COVERAGE,
251
+ leanProof: 'complete',
252
+ axioms: PHYSJS_AXIOMS,
253
+ },
254
+ corollary: {
255
+ theorem: 'PhysJS.Einstein.friedmann_corollary',
256
+ covers: 'derivation-step: the vacuum density gives (8πG/3) ρ = Λ c² / 3, the cosmological term of FirstOrderFriedmann. A fluid of this density added to matter, with the explicit Λ set to zero, is that equation at k = 0. The Einstein-static density Λ c²/(4π G) is twice that term. Dropping c² fails when c² ≠ 1. The density is not reproved. BE-20 has no reference of its own',
257
+ coverage: PHYSJS_COVERAGE,
258
+ leanProof: 'complete',
259
+ axioms: PHYSJS_AXIOMS,
260
+ },
261
+ },
262
+ {
263
+ key: 'be-34',
264
+ bridgeId: 'be-34',
265
+ theorem: 'PhysJS.KibbleZurek.exponent',
266
+ covers: 'derivation-step: the freeze-out power ε̂ = (τ₀/τ_Q)^(1/(1+zν)) and the defect density without the Boltzmann factor; omitting the 1 in the exponent fails. Not the reheating factor, and not a repair of the missing 1/a^d prefactor',
267
+ coverage: PHYSJS_COVERAGE,
268
+ leanProof: 'complete',
269
+ axioms: PHYSJS_AXIOMS,
270
+ },
271
+ {
272
+ key: 'be-42',
273
+ bridgeId: 'be-42',
274
+ theorem: 'PhysJS.HawkingUnruh.dictionary',
275
+ covers: 'cross-check: T_H(2GM/c²) = T_H(M) and T_U(c⁴/(4GM)) = T_H(M), naming BE-57 and be-42-via-rs. T_U(c⁴/(2GM)) is not T_H(M). Not the Hawking effect',
276
+ coverage: PHYSJS_COVERAGE,
277
+ leanProof: 'complete',
278
+ axioms: PHYSJS_AXIOMS,
279
+ },
280
+ {
281
+ key: 'be-24',
282
+ bridgeId: 'be-24',
283
+ theorem: 'PhysJS.Fret.dictionary',
284
+ covers: 'cross-check: η = R₀⁶/(R₀⁶+R⁶) = 1/(1+(R/R₀)⁶) = k_FRET/(k_FRET+1/τ_D), and η decreases on (0, ∞). At R = 2 R₀ the exponent 4 is not the exponent 6. Not the dipole–dipole law',
285
+ coverage: PHYSJS_COVERAGE,
286
+ leanProof: 'complete',
287
+ axioms: PHYSJS_AXIOMS,
288
+ },
289
+ {
290
+ key: 'be-19',
291
+ bridgeId: 'be-19',
292
+ theorem: 'PhysJS.QuantumBounce.dictionary',
293
+ covers: 'cross-check: H²_LQC equals H²_RS at σ = −ρ_c/2, both tend to (8πG/3)ρ + Λ/3 at infinity, and H²_LQC = 0 at ρ = ρ_c and Λ = 0, naming BE-54. σ = +ρ_c/2 is not that polynomial. σ < 0 is not a physical Randall–Sundrum brane',
294
+ coverage: PHYSJS_COVERAGE,
295
+ leanProof: 'complete',
296
+ axioms: PHYSJS_AXIOMS,
297
+ },
298
+ {
299
+ key: 'be-16',
300
+ bridgeId: 'be-16',
301
+ theorem: 'PhysJS.Landauer.equal_levels',
302
+ covers: 'property: equal two-state levels have thermodynamic entropy k_B log 2. At T ≠ 0, levels E and E+δ are not that value. At T = 0 the closed form does not separate the levels. Not E ≥ T ΔS, and not the Bérut confrontation',
303
+ coverage: PHYSJS_COVERAGE,
304
+ leanProof: 'complete',
305
+ axioms: PHYSJS_AXIOMS,
306
+ },
307
+ {
308
+ key: 'be-29',
309
+ bridgeId: 'be-29',
310
+ theorem: 'PhysJS.Jarzynski.jensen_work',
311
+ covers: 'property: for a finite probability and β > 0, ∑ p_i W_i ≥ −(1/β) log(∑ p_i exp(−β W_i)). The reversed inequality fails on two unequal work values. Not Jarzynski\'s theorem, and not the Gaussian identity',
312
+ coverage: PHYSJS_COVERAGE,
313
+ leanProof: 'complete',
314
+ axioms: PHYSJS_AXIOMS,
315
+ },
316
+ {
317
+ key: 'be-11',
318
+ bridgeId: 'be-11',
319
+ theorem: 'PhysJS.Lindblad.preserve',
320
+ covers: 'property: one channel of the displayed GKSL generator has trace zero, and it is Hermitian when H and ρ are. L need not be Hermitian. Dropping the anticommutator makes the trace nonzero. Not Born–Markov coarse-graining',
321
+ coverage: PHYSJS_COVERAGE,
322
+ leanProof: 'complete',
323
+ axioms: PHYSJS_AXIOMS,
324
+ },
325
+ {
326
+ key: 'be-65',
327
+ bridgeId: 'be-65',
328
+ theorem: 'PhysJS.Jeans.mass_eq',
329
+ covers: 'derivation-step: the encoded Jeans mass (5 k T / (G μ m_u))^(3/2) (3 / (4 π ρ))^(1/2) follows from the virial convention with factor 5 and M = 4 π R³ ρ / 3. Replacing 5 by 3 fails. Not the virial theorem',
330
+ coverage: PHYSJS_COVERAGE,
331
+ leanProof: 'complete',
332
+ axioms: PHYSJS_AXIOMS,
333
+ },
334
+ {
335
+ key: 'be-51',
336
+ bridgeId: 'be-51',
337
+ theorem: 'PhysJS.Deflection.line_integral',
338
+ covers: 'derivation-step: (1+γ)/c² ∫_ℝ G M b / (b² + z²)^{3/2} dz = 2(1+γ) G M / (b c²), and at γ = 1 this is the encoded angle 4 G M / (b c²). γ = 0 is half. Not a geodesic',
339
+ coverage: PHYSJS_COVERAGE,
340
+ leanProof: 'complete',
341
+ axioms: PHYSJS_AXIOMS,
342
+ },
343
+ {
344
+ key: 'be-61',
345
+ bridgeId: 'be-61',
346
+ theorem: 'PhysJS.Sommerfeld.integral_eq',
347
+ covers: 'derivation-step: ∫_ℝ x² e^x / (1+e^x)² dx = π²/3, the factor in the encoded Lorenz number. The integrand is even, so the half-line is half of π²/3. Claiming the half-line equals π²/3 fails. Not the transport law',
348
+ coverage: PHYSJS_COVERAGE,
349
+ leanProof: 'complete',
350
+ axioms: PHYSJS_AXIOMS,
351
+ },
352
+ {
353
+ key: 'be-12',
354
+ bridgeId: 'be-12',
355
+ theorem: 'PhysJS.ThermalDeBroglie.wavelength_eq',
356
+ covers: 'derivation-step: √(2π ℏ²/(m k_B T)) = h/√(2π m k_B T) for h = 2πℏ and ℏ > 0. The non-negative square root needs ℏ > 0. The Wave Q form ℏ/√(m k_B T), with ℏ in the numerator and no √(2π), fails, as does ℏ/√(2 m k_B T). Not Caldeira–Leggett dephasing',
357
+ coverage: PHYSJS_COVERAGE,
358
+ leanProof: 'complete',
359
+ axioms: PHYSJS_AXIOMS,
360
+ },
361
+ {
362
+ key: 'be-59',
363
+ bridgeId: 'be-59',
364
+ theorem: 'PhysJS.Josephson.frequency_eq',
365
+ covers: 'derivation-step: f = (2e/h) V, K_J = 2e/h, and f = K_J V. Clearing h recovers 2e. The factor 2 is the Cooper-pair charge, taken as a premise. Replacing 2e by e fails. Not the tunneling Hamiltonian',
366
+ coverage: PHYSJS_COVERAGE,
367
+ leanProof: 'complete',
368
+ axioms: PHYSJS_AXIOMS,
369
+ },
370
+ {
371
+ key: 'be-55',
372
+ bridgeId: 'be-55',
373
+ theorem: 'PhysJS.QuantumHall.reciprocal',
374
+ covers: 'derivation-step: for a nonzero integer C and e ≠ 0, σ_xy = C e²/h, R_H = h/(C e²), and R_K = h/e², so σ_xy R_H = 1 and R_H = R_K/C. The shifted index C+1 is a different conductance. Replacing e² by e fails the product when e ≠ 1. Not TKNN',
375
+ coverage: PHYSJS_COVERAGE,
376
+ leanProof: 'complete',
377
+ axioms: PHYSJS_AXIOMS,
378
+ },
379
+ {
380
+ key: 'be-60',
381
+ bridgeId: 'be-60',
382
+ theorem: 'PhysJS.Laughlin.filling_fraction',
383
+ covers: 'derivation-step: for integers p ≠ 0 and q ≠ 0, with ν = p/q, σ_xy = ν e²/h and R_xy = R_K/ν = (q/p) h/e². The charge and Planck\'s constant are not assumed nonzero. Oddness of q is the Laughlin selection rule and is not this identity. Not the Laughlin wavefunction, and not the anyon charge e/3',
384
+ coverage: PHYSJS_COVERAGE,
385
+ leanProof: 'complete',
386
+ axioms: PHYSJS_AXIOMS,
387
+ },
388
+ {
389
+ key: 'be-21',
390
+ bridgeId: 'be-21',
391
+ theorem: 'PhysJS.Kss.saturating',
392
+ covers: 'derivation-step: η/s = ℏ/(4π k_B) is the equality 4π k_B (η/s) = ℏ for k_B ≠ 0. The Hawking factor 8π in place of 4π is 2ℏ, not ℏ, once ℏ ≠ 0. Not the inequality η/s ≥ ℏ/(4π k_B)',
393
+ coverage: PHYSJS_COVERAGE,
394
+ leanProof: 'complete',
395
+ axioms: PHYSJS_AXIOMS,
396
+ },
397
+ {
398
+ key: 'be-14',
399
+ bridgeId: 'be-14',
400
+ theorem: 'PhysJS.PlanckArea.area_law',
401
+ covers: 'derivation-step: k_B c³ A/(4 G ℏ) = k_B A/(4 ℓ_P²) for ℓ_P² = ℏ G/c³. The area is an input. ℓ_P² = ℏ G/c² fails when c ≠ 1. The factor 2 in place of 4 fails. The same lemma is be-43. Not the minimal-surface theorem',
402
+ coverage: PHYSJS_COVERAGE,
403
+ leanProof: 'complete',
404
+ axioms: PHYSJS_AXIOMS,
405
+ },
406
+ {
407
+ key: 'be-43',
408
+ bridgeId: 'be-43',
409
+ theorem: 'PhysJS.PlanckArea.area_law',
410
+ covers: 'derivation-step: the be-14 lemma on a wormhole area. k_B A/(4 ℓ_P²) equals k_B c³ A/(4 G ℏ) for ℓ_P² = ℏ G/c³. ℓ_P² = ℏ G/c² fails when c ≠ 1, and the factor 2 fails. Not ER=EPR',
411
+ coverage: PHYSJS_COVERAGE,
412
+ leanProof: 'complete',
413
+ axioms: PHYSJS_AXIOMS,
414
+ },
415
+ {
416
+ key: 'be-37',
417
+ bridgeId: 'be-37',
418
+ theorem: 'PhysJS.Shapiro.radial_integral',
419
+ covers: 'derivation-step: for 0 < R_near < R_far and c ≠ 0, ∫_{R_near}^{R_far} (2 G M / c³) (dr / r) = (2 G M / c³) ln(R_far / R_near). The factor 1 in place of 2 is half, once G ≠ 0 and M ≠ 0. log₁₀ of the radius ratio is not ln. Not the impact-parameter formula, and not the Cassini measurement',
420
+ coverage: PHYSJS_COVERAGE,
421
+ leanProof: 'complete',
422
+ axioms: PHYSJS_AXIOMS,
423
+ },
424
+ {
425
+ key: 'be-54',
426
+ bridgeId: 'be-54',
427
+ theorem: 'PhysJS.RandallSundrum.brane_friedmann',
428
+ covers: 'derivation-step: for σ ≠ 0, H²_RS = (8πG/3) ρ (1 + ρ/(2σ)) + Λ/3, which equals the Friedmann term plus (8πG/3) ρ²/(2σ). Not a derivation from the five-dimensional Einstein equation',
429
+ coverage: PHYSJS_COVERAGE,
430
+ leanProof: 'complete',
431
+ axioms: PHYSJS_AXIOMS,
432
+ friedmann: {
433
+ theorem: 'PhysJS.RandallSundrum.flat_friedmann',
434
+ covers: 'derivation-step: H²_FRW with the module Λ equal to Physlib\'s Λ c² is FirstOrderFriedmann at k = 0. Identifying the two Λ symbols and dropping c² fails when c² ≠ 1 and Λ ≠ 0',
435
+ coverage: PHYSJS_COVERAGE,
436
+ leanProof: 'complete',
437
+ axioms: PHYSJS_AXIOMS,
438
+ },
439
+ },
440
+ {
441
+ key: 'be-17',
442
+ bridgeId: 'be-17',
443
+ theorem: 'PhysJS.EinsteinCartan.inversion',
444
+ covers: 'derivation-step: if κ = 8πG/c⁴ ≠ 0 and every component satisfies T = κ S, then S·S = T·T / κ² = (c⁴/(8πG))² T·T. κ² in the numerator is the inversion backwards, and it fails when T·T ≠ 0 and κ⁴ ≠ 1. Not the Einstein–Cartan field equation, and not a Newtonian limit',
445
+ coverage: PHYSJS_COVERAGE,
446
+ leanProof: 'complete',
447
+ axioms: PHYSJS_AXIOMS,
448
+ torsionMonomial: {
449
+ theorem: 'PhysJS.EinsteinCartan.torsion_monomial',
450
+ covers: 'derivation-step: [κ] and [S] are independent base dimensions and [T] = [κ][S]. If a positive component is dimensionally homogeneous in those dimensions, every positive pair is a unit change of (1, 1) and T = C κ S with C = f(1, 1). C is not fixed. Not the Einstein–Cartan field equation',
451
+ coverage: PHYSJS_COVERAGE,
452
+ leanProof: 'complete',
453
+ axioms: PHYSJS_AXIOMS,
454
+ },
455
+ coefficientNotFixed: {
456
+ theorem: 'PhysJS.EinsteinCartan.coefficient_not_fixed',
457
+ covers: 'derivation-step: if C ≠ 1 and κ S ≠ 0, then C κ S ≠ κ S. A factor other than 1 is not the catalog coefficient',
458
+ coverage: PHYSJS_COVERAGE,
459
+ leanProof: 'complete',
460
+ axioms: PHYSJS_AXIOMS,
461
+ },
462
+ unitCoefficient: {
463
+ theorem: 'PhysJS.EinsteinCartan.inversion_of_unit_coefficient',
464
+ covers: 'derivation-step: if C = 1 and every component satisfies T = C κ S, then inversion gives S·S = T·T / κ². C = 1 is a hypothesis. The Einstein trace stays a hypothesis of PhysJS.Einstein.trace_eq',
465
+ coverage: PHYSJS_COVERAGE,
466
+ leanProof: 'complete',
467
+ axioms: PHYSJS_AXIOMS,
468
+ },
469
+ },
470
+ {
471
+ key: 'be-27',
472
+ bridgeId: 'be-27',
473
+ theorem: 'PhysJS.EffectiveTemperature.sum_eq',
474
+ covers: 'derivation-step: for T ≠ 0 and k_B ≠ 0, T (1 + Σ_active/(k_B T)) = T + Σ_active/k_B, and this equals T iff Σ_active = 0. The product T · Σ_active/(k_B T), with the 1 omitted, is not that sum. Not the frequency-dependent Cugliandolo–Kurchan T_eff(ω)',
475
+ coverage: PHYSJS_COVERAGE,
476
+ leanProof: 'complete',
477
+ axioms: PHYSJS_AXIOMS,
478
+ },
479
+ {
480
+ key: 'be-22',
481
+ bridgeId: 'be-22',
482
+ theorem: 'PhysJS.ToricCode.toric',
483
+ covers: 'derivation-step: four anyons of quantum dimension 1 have D = √4 = 2 and γ = ln 2 in nats. The encoded decomposition is S = α L − γ, with the O(L⁻¹) term dropped. log₂ 2 = 1 is the bit convention, not ln 2. D = √2 is one anyon pair, not the toric code. Not the Kitaev–Preskill theorem, and not a quantum-gravity boundary',
484
+ coverage: PHYSJS_COVERAGE,
485
+ leanProof: 'complete',
486
+ axioms: PHYSJS_AXIOMS,
487
+ },
488
+ {
489
+ key: 'be-15',
490
+ bridgeId: 'be-15',
491
+ theorem: 'PhysJS.Coarsening.exponent_iff',
492
+ covers: 'derivation-step: for Γ = L₀²/t₀ > 0, t > 0, t ≠ t₀, and z > 0, L(t) = L₀ (t/t₀)^{1/z} obeys L(t)² = Γ t iff z = 2. At t = t₀ the ratio holds for every z. Model B\'s z = 3 gives L³ ∝ t and fails L² = Γ t. Not the Model A Langevin equation. The Langevin kinetic coefficient is a different Γ',
493
+ coverage: PHYSJS_COVERAGE,
494
+ leanProof: 'complete',
495
+ axioms: PHYSJS_AXIOMS,
496
+ lengthMonomial: {
497
+ theorem: 'PhysJS.Coarsening.length_monomial_at',
498
+ covers: 'derivation-step: if L is a dimensionally homogeneous function of Γ and t alone and [Γ] = L^z T⁻¹ for a positive rational z, then L = C (Γ t)^{1/z} with C = f(1, 1). C is not fixed. Every positive rational z is allowed, so z = 2 is not derived. Not the Model A Langevin equation',
499
+ coverage: PHYSJS_COVERAGE,
500
+ leanProof: 'complete',
501
+ axioms: PHYSJS_AXIOMS,
502
+ },
503
+ },
504
+ {
505
+ key: 'be-33',
506
+ bridgeId: 'be-33',
507
+ theorem: 'PhysJS.QuantumCritical.thermal_scaling',
508
+ covers: 'derivation-step: ξ(T) = ξ₀ (T/T₀)^{−1/z}, and at z = 1 this is ξ(T) = ξ₀ (T/T₀)^{−1} = ξ₀ T₀/T for T > 0 and T₀ > 0. Not Hertz–Millis theory, and not a universality class',
509
+ coverage: PHYSJS_COVERAGE,
510
+ leanProof: 'complete',
511
+ axioms: PHYSJS_AXIOMS,
512
+ scalingShape: {
513
+ theorem: 'PhysJS.QuantumCritical.scaling_shape',
514
+ covers: 'derivation-step: if ξ is a dimensionally homogeneous function of a length ξ₀ and two temperatures, then ξ = ξ₀ φ(T/T₀) with φ(u) = f(1, u, 1). φ is not fixed. Not Hertz–Millis theory',
515
+ coverage: PHYSJS_COVERAGE,
516
+ leanProof: 'complete',
517
+ axioms: PHYSJS_AXIOMS,
518
+ },
519
+ everyPower: {
520
+ theorem: 'PhysJS.QuantumCritical.every_power_homogeneous',
521
+ covers: 'derivation-step: for every real p and positive scale factors, (λ_s ξ₀) ((λ_e T)/(λ_e T₀))^p = λ_s (ξ₀ (T/T₀)^p). The exponent p is not chosen. Not Hertz–Millis theory',
522
+ coverage: PHYSJS_COVERAGE,
523
+ leanProof: 'complete',
524
+ axioms: PHYSJS_AXIOMS,
525
+ },
526
+ },
527
+ {
528
+ key: 'be-50',
529
+ bridgeId: 'be-50',
530
+ theorem: 'PhysJS.TimeSymmetric.wheeler_feynman',
531
+ covers: 'derivation-step: A_μ(x) = (A_μ^ret(x) + A_μ^adv(x))/2, and twice that component is the sum. The id is contested. This lemma does not decide the contest. Not the absorber boundary condition as a theory of radiation reaction',
532
+ coverage: PHYSJS_COVERAGE,
533
+ leanProof: 'complete',
534
+ axioms: PHYSJS_AXIOMS,
535
+ },
536
+ {
537
+ key: 'be-32',
538
+ bridgeId: 'be-32',
539
+ theorem: 'PhysJS.BornOverlap.modulus_sq',
540
+ covers: 'derivation-step: |c + s i|² = c² + s², which is normSq of one complex matrix element. A sum of squares above 1 is not a probability in [0, 1], the module\'s rejection of c² + s² > 1. c² − s² is not that square when s ≠ 0. Not the Giacomini–Castro-Ruiz–Brukner transformation, and not a Haar integral. The catalog records this id as not-a-bridge; this lemma does not decide that',
541
+ coverage: PHYSJS_COVERAGE,
542
+ leanProof: 'complete',
543
+ axioms: PHYSJS_AXIOMS,
544
+ },
545
+ {
546
+ key: 'be-28',
547
+ bridgeId: 'be-28',
548
+ theorem: 'PhysJS.EntropyProduction.nonneg',
549
+ covers: 'derivation-step: σ = Σ_i J_i X_i is the definition of σ. If every product is ≥ 0 then σ ≥ 0. One flipped sign, with the other products zero and the flipped product strictly positive, is not σ, and that flipped sum is negative. Not the variational maximum-entropy-production principle. The catalog records this id as not-a-bridge; this lemma does not decide that',
550
+ coverage: PHYSJS_COVERAGE,
551
+ leanProof: 'complete',
552
+ axioms: PHYSJS_AXIOMS,
553
+ },
554
+ {
555
+ key: 'be-40',
556
+ bridgeId: 'be-40',
557
+ theorem: 'PhysJS.CompositeHiggs.scale_free',
558
+ covers: 'derivation-step: for f ≠ 0 and θ = h/f, V(h)/f⁴ = −α sin²θ + β [sin⁴θ − sin²θ cos²θ]. Both terms carry f⁴, so the ratio depends on h only through θ. The pre-correction first term −α f² sin²θ, divided by f⁴, is −α sin²θ / f². It depends on f, and it agrees with −α sin²θ only when f² = 1. Not SILH matching onto a confining theory. The catalog records this id as not-a-bridge; this lemma does not decide that',
559
+ coverage: PHYSJS_COVERAGE,
560
+ leanProof: 'complete',
561
+ axioms: PHYSJS_AXIOMS,
562
+ },
563
+ {
564
+ key: 'be-35',
565
+ bridgeId: 'be-35',
566
+ theorem: 'PhysJS.Crossing.antisymmetry',
567
+ covers: 'derivation-step: for a real function g, g(u,v) − g(v,u) = −(g(v,u) − g(u,v)). The swap is the negation of a difference. The residual is 0 for every g when u = v, including u = v = 1/4, so that point is not a control. A block that is not symmetric does not vanish at u = 1/2, v = 1/4. Not the infinite sum over (Δ, ℓ), and not positivity or unitarity. The catalog records this id as not-a-bridge; this lemma does not decide that',
568
+ coverage: PHYSJS_COVERAGE,
569
+ leanProof: 'complete',
570
+ axioms: PHYSJS_AXIOMS,
571
+ },
572
+ {
573
+ key: 'be-63',
574
+ bridgeId: 'be-63',
575
+ theorem: 'PhysJS.Chandrasekhar.prefactor',
576
+ covers: 'derivation-step: with n = ρ/(μ_e m_u), p_F = ℏ (3π² n)^{1/3}, and P = (1/4) n p_F c, one has P = K_ρ ρ^{4/3} where K_ρ = K_n/(μ_e m_u)^{4/3} and K_n = (ℏ c/4)(3π²)^{1/3}. For the n = 3 Lane–Emden scale the central density cancels, and M = (ω₃⁰ √(3π)/2) (ℏ c/G)^{3/2} (μ_e m_u)^{−2}. ω₃⁰ stays symbolic; the decimal 2.01824 is not in the theorem. With ℏ = c = μ_e = m_u = 1 both routes give the same K. √π/2 in place of √(3π)/2 fails when ω₃⁰ ≠ 0, and dropping ω₃⁰ fails when ω₃⁰ ≠ 1. Not stellar rotation or magnetic support',
577
+ coverage: PHYSJS_COVERAGE,
578
+ leanProof: 'complete',
579
+ axioms: PHYSJS_AXIOMS,
580
+ },
581
+ {
582
+ key: 'be-30',
583
+ bridgeId: 'be-30',
584
+ theorem: 'PhysJS.Entanglement.first_variation',
585
+ covers: 'derivation-step: for a smooth curve of full-rank density matrices that stay diagonal in a fixed basis and have trace 1, d/dt S(ρ(t)) = −⟪ρ̇(t), log ρ(t)⟫, the trace inner product. The modular Hamiltonian K = −log ρ is frozen at the base point, and that derivative equals d/dt ⟨K⟩. A finite jump from diag(1/2, 1/2) to diag(3/4, 1/4) leaves ⟨K⟩ unchanged and changes S. Not the holographic first law that identifies K with an area variation',
586
+ coverage: PHYSJS_COVERAGE,
587
+ leanProof: 'complete',
588
+ axioms: PHYSJS_AXIOMS,
589
+ },
590
+ ];
591
+ const entryByKey = new Map(PHYSJS_ENTRIES.map((entry) => [entry.key, entry]));
592
+ /** `formalRef.version` for the pinned manifest. */
593
+ function physjsVersion() {
594
+ return `physjs@${PHYSJS_COMMIT} ${PHYSJS_TOOLCHAIN} mathlib:${PHYSJS_MATHLIB} physlib@${PHYSJS_PHYS_LIB}`;
595
+ }
596
+ /**
597
+ * Namespaces whose theorems live in another Lean file at this pin.
598
+ * `SpringLc` and `DampedRlc` are namespaces inside `OscillatorDictionary.lean`,
599
+ * not their own files. Rechecked at this pin.
600
+ */
601
+ const PHYSJS_FILE_BY_NAMESPACE = {
602
+ SpringLc: 'OscillatorDictionary.lean',
603
+ DampedRlc: 'OscillatorDictionary.lean',
604
+ };
605
+ /** Permalink to the Lean file that contains `theorem` at the pinned commit. */
606
+ function physjsStatementUrl(theorem) {
607
+ const parts = theorem.split('.');
608
+ if (parts.length < 3 || parts[0] !== 'PhysJS' || parts[1] === undefined) {
609
+ throw new Error(`PhysJS theorem '${theorem}' is not PhysJS.<module>.<name>`);
610
+ }
611
+ const file = PHYSJS_FILE_BY_NAMESPACE[parts[1]] ?? `${parts[1]}.lean`;
612
+ return `https://github.com/danielsimonjr/PhysJS/blob/${PHYSJS_COMMIT}/PhysJS/${file}`;
613
+ }
614
+ /**
615
+ * Catalog keys whose theorem states the catalogued equation.
616
+ * The PhysJS covers line still begins with `derivation-step`.
617
+ * The kind is bridge because that equation is the theorem.
618
+ */
619
+ const CATALOG_EQUATION_KEYS = new Set([
620
+ 'be-12',
621
+ 'be-21',
622
+ 'be-27',
623
+ 'be-33',
624
+ 'be-37',
625
+ 'be-40',
626
+ 'be-43',
627
+ 'be-50',
628
+ 'be-54',
629
+ 'be-55',
630
+ 'be-59',
631
+ 'be-60',
632
+ 'be-63',
633
+ ]);
634
+ /**
635
+ * Atlas keys are bridges. A catalog key whose theorem states the catalogued
636
+ * equation is a bridge. BE-28 is a property of the defining sum. Every other
637
+ * catalog key's kind is the covers prefix.
638
+ */
639
+ function formalRefKind(key, covers) {
640
+ if (key.startsWith('ab-'))
641
+ return 'bridge';
642
+ if (CATALOG_EQUATION_KEYS.has(key))
643
+ return 'bridge';
644
+ if (key === 'be-28')
645
+ return 'property';
646
+ const word = covers.split(':')[0];
647
+ if (word === 'property' ||
648
+ word === 'cross-check' ||
649
+ word === 'reduction' ||
650
+ word === 'limit' ||
651
+ word === 'derivation-step') {
652
+ return word;
653
+ }
654
+ return undefined;
655
+ }
656
+ /**
657
+ * The reviewed reference for a manifest key. Throws when the key is not an
658
+ * entry, so a typo cannot ship a bridge with no reference.
659
+ *
660
+ * @internal
661
+ */
662
+ export function physjsFormalRef(key) {
663
+ const entry = entryByKey.get(key);
664
+ if (entry === undefined)
665
+ throw new Error(`PhysJS manifest has no entry for '${key}'`);
666
+ const kind = formalRefKind(entry.key, entry.covers);
667
+ if (kind === undefined)
668
+ throw new Error(`PhysJS entry '${entry.key}' covers line has no catalog kind`);
669
+ return {
670
+ system: 'lean4-physjs',
671
+ statement: entry.theorem,
672
+ version: physjsVersion(),
673
+ axioms: entry.axioms,
674
+ fidelity: 'sanity-lemmas',
675
+ kind,
676
+ url: physjsStatementUrl(entry.theorem),
677
+ covers: `${entry.covers} — ${entry.coverage}`,
678
+ };
679
+ }
680
+ function sameAxioms(recorded, manifest) {
681
+ return recorded.length === manifest.length && recorded.every((axiom, i) => axiom === manifest[i]);
682
+ }
683
+ function sameNested(compiled, manifest) {
684
+ if (compiled === undefined && manifest === undefined)
685
+ return true;
686
+ if (compiled === undefined || manifest === undefined)
687
+ return false;
688
+ return (compiled.theorem === manifest.theorem &&
689
+ compiled.covers === manifest.covers &&
690
+ compiled.coverage === manifest.coverage &&
691
+ compiled.leanProof === manifest.leanProof &&
692
+ sameAxioms(compiled.axioms, manifest.axioms));
693
+ }
694
+ /**
695
+ * A `be-` covers line begins with a counted kind or a labeled kind.
696
+ * Atlas covers lines stay as milestone 1 and 2 wrote them.
697
+ */
698
+ function catalogCoversProblems(key, covers, where) {
699
+ if (!key.startsWith('be-'))
700
+ return [];
701
+ if (COUNTED_KIND.test(covers) || LABELED_KIND.test(covers))
702
+ return [];
703
+ return [
704
+ `${where} '${key}' covers line does not begin with a catalog kind (reduction, limit, derivation-step, property, or cross-check)`,
705
+ ];
706
+ }
707
+ /**
708
+ * Problems in the vendored manifest against the bridges that claim to be keyed
709
+ * by it. Empty means every entry resolves to a `lean4-physjs` reference whose
710
+ * theorem, axioms, commit and coverage phrase are the entry's own.
711
+ *
712
+ * A wrong commit, theorem, key or coverage phrase is a problem. A manifest
713
+ * entry with no bridge is a problem. A `lean4-physjs` reference with no entry
714
+ * is a problem: the gate does not skip that system. A nested object is kept
715
+ * and compared; naming it as the `formalRef` is a problem. The top-level
716
+ * theorem stays the reference. A catalog entry whose covers line is a
717
+ * `property` or a `cross-check` is a labeled reference: it resolves to a
718
+ * `formalRef`, and it is not a counted kind.
719
+ *
720
+ * @internal
721
+ */
722
+ export function physjsManifestProblems(input) {
723
+ const problems = [];
724
+ const manifest = input.manifest;
725
+ if (manifest.schema !== 'physjs-bridge-manifest/v1') {
726
+ problems.push(`manifest schema is '${manifest.schema}', expected 'physjs-bridge-manifest/v1'`);
727
+ }
728
+ if (manifest.commit !== PHYSJS_COMMIT) {
729
+ problems.push(`manifest commit is '${manifest.commit}', expected '${PHYSJS_COMMIT}'`);
730
+ }
731
+ if (manifest.toolchain !== PHYSJS_TOOLCHAIN) {
732
+ problems.push(`manifest toolchain is '${manifest.toolchain}', expected '${PHYSJS_TOOLCHAIN}'`);
733
+ }
734
+ if (manifest.mathlib !== PHYSJS_MATHLIB) {
735
+ problems.push(`manifest mathlib is '${manifest.mathlib}', expected '${PHYSJS_MATHLIB}'`);
736
+ }
737
+ if (manifest.physlib !== PHYSJS_PHYS_LIB) {
738
+ problems.push(`manifest physlib is '${manifest.physlib}', expected '${PHYSJS_PHYS_LIB}'`);
739
+ }
740
+ const byId = new Map(input.bridges.map((bridge) => [bridge.id, bridge]));
741
+ const seen = new Set();
742
+ for (const entry of manifest.entries) {
743
+ if (seen.has(entry.key))
744
+ problems.push(`manifest key '${entry.key}' is duplicated`);
745
+ seen.add(entry.key);
746
+ for (const field of Object.keys(entry)) {
747
+ if (!ENTRY_FIELDS.has(field)) {
748
+ problems.push(`manifest entry '${entry.key}' has unexpected field '${field}'`);
749
+ }
750
+ }
751
+ if (entry.key !== entry.bridgeId) {
752
+ problems.push(`manifest key '${entry.key}' does not equal bridgeId '${entry.bridgeId}'`);
753
+ }
754
+ if (entry.coverage !== PHYSJS_COVERAGE) {
755
+ problems.push(`coverage phrase for '${entry.key}' is '${entry.coverage}', expected '${PHYSJS_COVERAGE}'`);
756
+ }
757
+ if (entry.leanProof !== 'complete') {
758
+ problems.push(`leanProof for '${entry.key}' is '${entry.leanProof}', expected 'complete'`);
759
+ }
760
+ const coversProblems = catalogCoversProblems(entry.key, entry.covers, 'manifest key');
761
+ problems.push(...coversProblems);
762
+ for (const field of NESTED_FIELDS) {
763
+ const nested = entry[field];
764
+ if (nested === undefined)
765
+ continue;
766
+ if (nested.coverage !== PHYSJS_COVERAGE) {
767
+ problems.push(`${field} coverage phrase for '${entry.key}' is '${nested.coverage}', expected '${PHYSJS_COVERAGE}'`);
768
+ }
769
+ if (nested.leanProof !== 'complete') {
770
+ problems.push(`${field} leanProof for '${entry.key}' is '${nested.leanProof}', expected 'complete'`);
771
+ }
772
+ problems.push(...catalogCoversProblems(entry.key, nested.covers, `${field} covers`));
773
+ }
774
+ const bridge = byId.get(entry.key);
775
+ if (bridge === undefined) {
776
+ problems.push(`manifest key '${entry.key}' does not resolve to a bridge`);
777
+ continue;
778
+ }
779
+ const ref = bridge.formalRef;
780
+ if (ref === undefined || ref.system !== 'lean4-physjs') {
781
+ problems.push(`bridge '${entry.key}' has no lean4-physjs formalRef (system '${ref?.system ?? 'none'}')`);
782
+ continue;
783
+ }
784
+ if (entry.planeWave !== undefined && ref.statement === entry.planeWave.theorem) {
785
+ problems.push(`bridge '${entry.key}' formalRef names the nested planeWave theorem '${entry.planeWave.theorem}'; the top-level theorem stays the reference`);
786
+ }
787
+ for (const field of NESTED_FIELDS) {
788
+ if (field === 'planeWave')
789
+ continue;
790
+ const nested = entry[field];
791
+ if (nested !== undefined && ref.statement === nested.theorem) {
792
+ problems.push(`bridge '${entry.key}' formalRef names the nested ${field} theorem '${nested.theorem}'; the top-level theorem stays the reference`);
793
+ }
794
+ }
795
+ if (ref.statement !== entry.theorem) {
796
+ problems.push(`bridge '${entry.key}' theorem is '${ref.statement}', manifest theorem is '${entry.theorem}'`);
797
+ }
798
+ if (!sameAxioms(ref.axioms, entry.axioms)) {
799
+ problems.push(`bridge '${entry.key}' axioms [${ref.axioms.join(', ')}] differ from the manifest [${entry.axioms.join(', ')}]`);
800
+ }
801
+ problems.push(...catalogCoversProblems(entry.key, ref.covers, 'formalRef covers'));
802
+ if (!ref.covers.includes(PHYSJS_COVERAGE)) {
803
+ problems.push(`bridge '${entry.key}' covers line does not say '${PHYSJS_COVERAGE}'`);
804
+ }
805
+ if (!ref.covers.includes(entry.covers)) {
806
+ problems.push(`bridge '${entry.key}' covers line does not record '${entry.covers}'`);
807
+ }
808
+ if (ref.version !== physjsVersion() || !ref.version.includes(`physjs@${manifest.commit}`)) {
809
+ problems.push(`bridge '${entry.key}' version '${ref.version}' does not record commit '${manifest.commit}'`);
810
+ }
811
+ if (ref.fidelity === 'unreviewed') {
812
+ problems.push(`bridge '${entry.key}' formalRef is unreviewed`);
813
+ }
814
+ const kind = formalRefKind(entry.key, entry.covers);
815
+ if (kind !== undefined && ref.kind !== kind) {
816
+ problems.push(`bridge '${entry.key}' kind is '${ref.kind}', expected '${kind}'`);
817
+ }
818
+ const url = physjsStatementUrl(entry.theorem);
819
+ if (ref.url !== url) {
820
+ problems.push(`bridge '${entry.key}' url is '${ref.url}', expected '${url}'`);
821
+ }
822
+ const compiled = entryByKey.get(entry.key);
823
+ if (compiled === undefined) {
824
+ problems.push(`manifest key '${entry.key}' is not in the compiled entry table`);
825
+ }
826
+ else if (compiled.theorem !== entry.theorem ||
827
+ compiled.covers !== entry.covers ||
828
+ compiled.coverage !== entry.coverage ||
829
+ NESTED_FIELDS.some((field) => !sameNested(compiled[field], entry[field]))) {
830
+ problems.push(`compiled entry for '${entry.key}' disagrees with the vendored manifest`);
831
+ }
832
+ }
833
+ for (const bridge of input.bridges) {
834
+ if (bridge.formalRef?.system !== 'lean4-physjs')
835
+ continue;
836
+ if (!seen.has(bridge.id)) {
837
+ problems.push(`lean4-physjs formalRef on '${bridge.id}' has no manifest entry`);
838
+ }
839
+ }
840
+ return problems;
841
+ }
842
+ //# sourceMappingURL=physjs-ref.js.map