universal-physics-tensor 9.0.0 → 11.0.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 (1109) hide show
  1. package/README.md +21 -17
  2. package/bin/upt.mjs +13 -1
  3. package/data/atlas/atlas.json +79 -68
  4. package/data/atlas/atlas.jsonld +1 -1
  5. package/data/atlas/diffusion.json +24 -23
  6. package/data/atlas/oscillators.json +21 -16
  7. package/data/atlas/waves.json +36 -31
  8. package/data/atlas/witness-results.json +11 -11
  9. package/data/bridge-catalog.json +1192 -1636
  10. package/data/bridge-catalog.schema.json +390 -135
  11. package/data/quantities.json +53 -19
  12. package/data/schemas/atlas-record.v0.json +184 -46
  13. package/data/units.json +33 -4
  14. package/dist/atlas/applicability.d.ts.map +1 -1
  15. package/dist/atlas/applicability.js +35 -18
  16. package/dist/atlas/applicability.js.map +1 -1
  17. package/dist/atlas/association.js.map +1 -1
  18. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
  19. package/dist/atlas/benchmark/backend-shapes.js +5 -1
  20. package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
  21. package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
  22. package/dist/atlas/benchmark/baselines.js +8 -0
  23. package/dist/atlas/benchmark/baselines.js.map +1 -1
  24. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +12 -3
  25. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  26. package/dist/atlas/benchmark/hybrid-retrieval.js +30 -21
  27. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  28. package/dist/atlas/benchmark/leakage.js.map +1 -1
  29. package/dist/atlas/benchmark/loader.js +2 -2
  30. package/dist/atlas/benchmark/loader.js.map +1 -1
  31. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -1
  32. package/dist/atlas/benchmark/run-atlas.js +14 -2
  33. package/dist/atlas/benchmark/run-atlas.js.map +1 -1
  34. package/dist/atlas/benchmark/stats.d.ts +3 -3
  35. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  36. package/dist/atlas/benchmark/stats.js +16 -8
  37. package/dist/atlas/benchmark/stats.js.map +1 -1
  38. package/dist/atlas/benchmark/study.js.map +1 -1
  39. package/dist/atlas/benchmark/types.js.map +1 -1
  40. package/dist/atlas/bridge-record.d.ts +4 -4
  41. package/dist/atlas/bridge-record.d.ts.map +1 -1
  42. package/dist/atlas/bridge-record.js +6 -6
  43. package/dist/atlas/bridge-record.js.map +1 -1
  44. package/dist/atlas/catalog-formal-ref.d.ts +26 -3
  45. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
  46. package/dist/atlas/catalog-formal-ref.js +52 -5
  47. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  48. package/dist/atlas/chain-pipeline.d.ts +0 -11
  49. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  50. package/dist/atlas/chain-pipeline.js +12 -24
  51. package/dist/atlas/chain-pipeline.js.map +1 -1
  52. package/dist/atlas/composition-table.js.map +1 -1
  53. package/dist/atlas/conventions.js.map +1 -1
  54. package/dist/atlas/coverage.d.ts +2 -2
  55. package/dist/atlas/coverage.js.map +1 -1
  56. package/dist/atlas/derivation.js.map +1 -1
  57. package/dist/atlas/derive-evidence.d.ts +6 -4
  58. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  59. package/dist/atlas/derive-evidence.js +7 -2
  60. package/dist/atlas/derive-evidence.js.map +1 -1
  61. package/dist/atlas/diffusion/bridges-closure.d.ts +0 -4
  62. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  63. package/dist/atlas/diffusion/bridges-closure.js +8 -17
  64. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  65. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  66. package/dist/atlas/diffusion/bridges.js +27 -42
  67. package/dist/atlas/diffusion/bridges.js.map +1 -1
  68. package/dist/atlas/diffusion/dimensions.d.ts +6 -14
  69. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -1
  70. package/dist/atlas/diffusion/dimensions.js +8 -16
  71. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  72. package/dist/atlas/diffusion/index.d.ts +1 -1
  73. package/dist/atlas/diffusion/index.d.ts.map +1 -1
  74. package/dist/atlas/diffusion/index.js.map +1 -1
  75. package/dist/atlas/diffusion/models.d.ts +3 -3
  76. package/dist/atlas/diffusion/models.d.ts.map +1 -1
  77. package/dist/atlas/diffusion/models.js +5 -10
  78. package/dist/atlas/diffusion/models.js.map +1 -1
  79. package/dist/atlas/diffusion/numerics.d.ts +16 -4
  80. package/dist/atlas/diffusion/numerics.d.ts.map +1 -1
  81. package/dist/atlas/diffusion/numerics.js +38 -24
  82. package/dist/atlas/diffusion/numerics.js.map +1 -1
  83. package/dist/atlas/error-algebra.d.ts +6 -0
  84. package/dist/atlas/error-algebra.d.ts.map +1 -1
  85. package/dist/atlas/error-algebra.js +26 -0
  86. package/dist/atlas/error-algebra.js.map +1 -1
  87. package/dist/atlas/export.d.ts +18 -2
  88. package/dist/atlas/export.d.ts.map +1 -1
  89. package/dist/atlas/export.js +9 -3
  90. package/dist/atlas/export.js.map +1 -1
  91. package/dist/atlas/families.d.ts +19 -2
  92. package/dist/atlas/families.d.ts.map +1 -1
  93. package/dist/atlas/families.js +26 -3
  94. package/dist/atlas/families.js.map +1 -1
  95. package/dist/atlas/family.d.ts +27 -0
  96. package/dist/atlas/family.d.ts.map +1 -0
  97. package/dist/atlas/family.js +12 -0
  98. package/dist/atlas/family.js.map +1 -0
  99. package/dist/atlas/index.d.ts +3 -2
  100. package/dist/atlas/index.d.ts.map +1 -1
  101. package/dist/atlas/index.js +2 -1
  102. package/dist/atlas/index.js.map +1 -1
  103. package/dist/atlas/link-prediction.d.ts +107 -4
  104. package/dist/atlas/link-prediction.d.ts.map +1 -1
  105. package/dist/atlas/link-prediction.js +212 -66
  106. package/dist/atlas/link-prediction.js.map +1 -1
  107. package/dist/atlas/model.js.map +1 -1
  108. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  109. package/dist/atlas/oscillators/bridges-coarse.js +7 -12
  110. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  111. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  112. package/dist/atlas/oscillators/bridges-exact.js +6 -10
  113. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  114. package/dist/atlas/oscillators/bridges-limits.d.ts +3 -16
  115. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  116. package/dist/atlas/oscillators/bridges-limits.js +23 -36
  117. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  118. package/dist/atlas/oscillators/dimensions.d.ts +9 -21
  119. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -1
  120. package/dist/atlas/oscillators/dimensions.js +9 -21
  121. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  122. package/dist/atlas/oscillators/index.d.ts +1 -16
  123. package/dist/atlas/oscillators/index.d.ts.map +1 -1
  124. package/dist/atlas/oscillators/index.js.map +1 -1
  125. package/dist/atlas/oscillators/limit-witnesses.d.ts +2 -2
  126. package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -1
  127. package/dist/atlas/oscillators/limit-witnesses.js +17 -15
  128. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  129. package/dist/atlas/oscillators/models.d.ts.map +1 -1
  130. package/dist/atlas/oscillators/models.js +2 -6
  131. package/dist/atlas/oscillators/models.js.map +1 -1
  132. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
  133. package/dist/atlas/oscillators/norm-transport.js.map +1 -1
  134. package/dist/atlas/oscillators/norms.js.map +1 -1
  135. package/dist/atlas/oscillators/pendulum-motion.d.ts +29 -6
  136. package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -1
  137. package/dist/atlas/oscillators/pendulum-motion.js +60 -40
  138. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  139. package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
  140. package/dist/atlas/oscillators/phase-translation.d.ts +0 -11
  141. package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -1
  142. package/dist/atlas/oscillators/phase-translation.js +3 -4
  143. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  144. package/dist/atlas/oscillators/position-translation.d.ts +68 -7
  145. package/dist/atlas/oscillators/position-translation.d.ts.map +1 -1
  146. package/dist/atlas/oscillators/position-translation.js +123 -12
  147. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  148. package/dist/atlas/oscillators/rejections.d.ts +0 -2
  149. package/dist/atlas/oscillators/rejections.d.ts.map +1 -1
  150. package/dist/atlas/oscillators/rejections.js +0 -7
  151. package/dist/atlas/oscillators/rejections.js.map +1 -1
  152. package/dist/atlas/path-bound.js.map +1 -1
  153. package/dist/atlas/physjs-entries.generated.d.ts +25 -24
  154. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  155. package/dist/atlas/physjs-entries.generated.js +25 -24
  156. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  157. package/dist/atlas/physjs-ref.d.ts +107 -70
  158. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  159. package/dist/atlas/physjs-ref.js +184 -101
  160. package/dist/atlas/physjs-ref.js.map +1 -1
  161. package/dist/atlas/physjs-reviewed.d.ts +31 -0
  162. package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
  163. package/dist/atlas/physjs-reviewed.js +194 -0
  164. package/dist/atlas/physjs-reviewed.js.map +1 -0
  165. package/dist/atlas/poster/associations.js.map +1 -1
  166. package/dist/atlas/poster/derivations.js.map +1 -1
  167. package/dist/atlas/poster/statements.d.ts +0 -19
  168. package/dist/atlas/poster/statements.d.ts.map +1 -1
  169. package/dist/atlas/poster/statements.js +1 -1
  170. package/dist/atlas/poster/statements.js.map +1 -1
  171. package/dist/atlas/proof-target.d.ts +1 -1
  172. package/dist/atlas/proof-target.js +1 -1
  173. package/dist/atlas/proof-target.js.map +1 -1
  174. package/dist/atlas/public.d.ts +2 -1
  175. package/dist/atlas/public.d.ts.map +1 -1
  176. package/dist/atlas/public.js +2 -1
  177. package/dist/atlas/public.js.map +1 -1
  178. package/dist/atlas/regime.d.ts +1 -1
  179. package/dist/atlas/regime.d.ts.map +1 -1
  180. package/dist/atlas/regime.js +1 -1
  181. package/dist/atlas/regime.js.map +1 -1
  182. package/dist/atlas/serialize.d.ts +18 -12
  183. package/dist/atlas/serialize.d.ts.map +1 -1
  184. package/dist/atlas/serialize.js +28 -18
  185. package/dist/atlas/serialize.js.map +1 -1
  186. package/dist/atlas/statement.js.map +1 -1
  187. package/dist/atlas/text-overlap.d.ts +23 -0
  188. package/dist/atlas/text-overlap.d.ts.map +1 -0
  189. package/dist/atlas/text-overlap.js +41 -0
  190. package/dist/atlas/text-overlap.js.map +1 -0
  191. package/dist/atlas/translation-registry.js.map +1 -1
  192. package/dist/atlas/translation.js.map +1 -1
  193. package/dist/atlas/types.d.ts +9 -2
  194. package/dist/atlas/types.d.ts.map +1 -1
  195. package/dist/atlas/types.js +1 -1
  196. package/dist/atlas/types.js.map +1 -1
  197. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  198. package/dist/atlas/waves/bridges-closure.js +2 -9
  199. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  200. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  201. package/dist/atlas/waves/bridges.js +32 -52
  202. package/dist/atlas/waves/bridges.js.map +1 -1
  203. package/dist/atlas/waves/index.d.ts +1 -1
  204. package/dist/atlas/waves/index.d.ts.map +1 -1
  205. package/dist/atlas/waves/index.js.map +1 -1
  206. package/dist/atlas/waves/models.d.ts +5 -6
  207. package/dist/atlas/waves/models.d.ts.map +1 -1
  208. package/dist/atlas/waves/models.js +7 -13
  209. package/dist/atlas/waves/models.js.map +1 -1
  210. package/dist/atlas/waves/numerics.d.ts.map +1 -1
  211. package/dist/atlas/waves/numerics.js +10 -3
  212. package/dist/atlas/waves/numerics.js.map +1 -1
  213. package/dist/atlas/witness-artifact.js.map +1 -1
  214. package/dist/atlas/witness-dominance.d.ts +4 -3
  215. package/dist/atlas/witness-dominance.d.ts.map +1 -1
  216. package/dist/atlas/witness-dominance.js +15 -5
  217. package/dist/atlas/witness-dominance.js.map +1 -1
  218. package/dist/atlas/witness-numeric.d.ts +38 -4
  219. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  220. package/dist/atlas/witness-numeric.js +80 -2
  221. package/dist/atlas/witness-numeric.js.map +1 -1
  222. package/dist/atlas/witness-result.d.ts +7 -1
  223. package/dist/atlas/witness-result.d.ts.map +1 -1
  224. package/dist/atlas/witness-result.js.map +1 -1
  225. package/dist/atlas/witness-specs.d.ts.map +1 -1
  226. package/dist/atlas/witness-specs.js +19 -0
  227. package/dist/atlas/witness-specs.js.map +1 -1
  228. package/dist/atlas/witness-symbolic.d.ts +75 -3
  229. package/dist/atlas/witness-symbolic.d.ts.map +1 -1
  230. package/dist/atlas/witness-symbolic.js +116 -10
  231. package/dist/atlas/witness-symbolic.js.map +1 -1
  232. package/dist/atlas/witnesses/quantum-support.js.map +1 -1
  233. package/dist/bridges/caller-table.d.ts +1 -1
  234. package/dist/bridges/caller-table.d.ts.map +1 -1
  235. package/dist/bridges/caller-table.js.map +1 -1
  236. package/dist/bridges/carrier-sign.d.ts.map +1 -1
  237. package/dist/bridges/carrier-sign.js +8 -3
  238. package/dist/bridges/carrier-sign.js.map +1 -1
  239. package/dist/bridges/catalog-adapter.d.ts +12 -3
  240. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  241. package/dist/bridges/catalog-adapter.js +17 -9
  242. package/dist/bridges/catalog-adapter.js.map +1 -1
  243. package/dist/bridges/catalog-load.d.ts +12 -2
  244. package/dist/bridges/catalog-load.d.ts.map +1 -1
  245. package/dist/bridges/catalog-load.js +181 -13
  246. package/dist/bridges/catalog-load.js.map +1 -1
  247. package/dist/bridges/catalog-types.d.ts +74 -26
  248. package/dist/bridges/catalog-types.d.ts.map +1 -1
  249. package/dist/bridges/catalog-types.js +11 -1
  250. package/dist/bridges/catalog-types.js.map +1 -1
  251. package/dist/bridges/coefficient-statement.js +1 -5
  252. package/dist/bridges/coefficient-statement.js.map +1 -1
  253. package/dist/bridges/confrontation-coverage.js.map +1 -1
  254. package/dist/bridges/confrontations.d.ts +1 -1
  255. package/dist/bridges/confrontations.d.ts.map +1 -1
  256. package/dist/bridges/confrontations.js +1 -1
  257. package/dist/bridges/confrontations.js.map +1 -1
  258. package/dist/bridges/evaluation-errors.d.ts +46 -3
  259. package/dist/bridges/evaluation-errors.d.ts.map +1 -1
  260. package/dist/bridges/evaluation-errors.js +40 -4
  261. package/dist/bridges/evaluation-errors.js.map +1 -1
  262. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  263. package/dist/bridges/evaluator-inputs.js +7 -5
  264. package/dist/bridges/evaluator-inputs.js.map +1 -1
  265. package/dist/bridges/evaluators.d.ts +17 -2
  266. package/dist/bridges/evaluators.d.ts.map +1 -1
  267. package/dist/bridges/evaluators.js +76 -28
  268. package/dist/bridges/evaluators.js.map +1 -1
  269. package/dist/bridges/expr-parse.d.ts +38 -4
  270. package/dist/bridges/expr-parse.d.ts.map +1 -1
  271. package/dist/bridges/expr-parse.js +101 -12
  272. package/dist/bridges/expr-parse.js.map +1 -1
  273. package/dist/bridges/holds.d.ts +40 -4
  274. package/dist/bridges/holds.d.ts.map +1 -1
  275. package/dist/bridges/holds.js +128 -19
  276. package/dist/bridges/holds.js.map +1 -1
  277. package/dist/bridges/index.d.ts +15 -14
  278. package/dist/bridges/index.d.ts.map +1 -1
  279. package/dist/bridges/index.js +14 -15
  280. package/dist/bridges/index.js.map +1 -1
  281. package/dist/bridges/input-contract.js.map +1 -1
  282. package/dist/bridges/membership.d.ts +5 -3
  283. package/dist/bridges/membership.d.ts.map +1 -1
  284. package/dist/bridges/membership.js +5 -6
  285. package/dist/bridges/membership.js.map +1 -1
  286. package/dist/bridges/notices.d.ts.map +1 -1
  287. package/dist/bridges/notices.js +5 -5
  288. package/dist/bridges/notices.js.map +1 -1
  289. package/dist/bridges/observations/types.js.map +1 -1
  290. package/dist/bridges/rejected.d.ts +11 -17
  291. package/dist/bridges/rejected.d.ts.map +1 -1
  292. package/dist/bridges/rejected.js +13 -68
  293. package/dist/bridges/rejected.js.map +1 -1
  294. package/dist/bridges/relation-eval.d.ts +6 -7
  295. package/dist/bridges/relation-eval.d.ts.map +1 -1
  296. package/dist/bridges/relation-eval.js +20 -50
  297. package/dist/bridges/relation-eval.js.map +1 -1
  298. package/dist/bridges/rhs-registry.js.map +1 -1
  299. package/dist/bridges/sensitivity.d.ts +11 -3
  300. package/dist/bridges/sensitivity.d.ts.map +1 -1
  301. package/dist/bridges/sensitivity.js +27 -13
  302. package/dist/bridges/sensitivity.js.map +1 -1
  303. package/dist/bridges/tensor-index.js.map +1 -1
  304. package/dist/bridges/types.d.ts +1 -7
  305. package/dist/bridges/types.d.ts.map +1 -1
  306. package/dist/bridges/types.js +1 -4
  307. package/dist/bridges/types.js.map +1 -1
  308. package/dist/bridges/validity.d.ts +33 -0
  309. package/dist/bridges/validity.d.ts.map +1 -0
  310. package/dist/bridges/validity.js +67 -0
  311. package/dist/bridges/validity.js.map +1 -0
  312. package/dist/canonical/canonical-equation.js.map +1 -1
  313. package/dist/canonical/dimensional-fields.js.map +1 -1
  314. package/dist/canonical/entries/_l1-build.js.map +1 -1
  315. package/dist/canonical/entries/atomic.js +1 -3
  316. package/dist/canonical/entries/atomic.js.map +1 -1
  317. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  318. package/dist/canonical/entries/condensed-matter.js +8 -9
  319. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  320. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  321. package/dist/canonical/entries/dimensional-classics.js +5 -6
  322. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  323. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  324. package/dist/canonical/entries/electromagnetism.js +6 -12
  325. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  326. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  327. package/dist/canonical/entries/fluids-waves.js +3 -7
  328. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  329. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  330. package/dist/canonical/entries/mechanics.js +4 -6
  331. package/dist/canonical/entries/mechanics.js.map +1 -1
  332. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  333. package/dist/canonical/entries/nonmonomial.js +38 -39
  334. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  335. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  336. package/dist/canonical/entries/relativity.js +6 -6
  337. package/dist/canonical/entries/relativity.js.map +1 -1
  338. package/dist/canonical/entries/statistical-mechanics.js +5 -5
  339. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  340. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  341. package/dist/canonical/entries/thermo-nuclear-cosmo.js +6 -10
  342. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  343. package/dist/canonical/fixed-points.d.ts +94 -0
  344. package/dist/canonical/fixed-points.d.ts.map +1 -0
  345. package/dist/canonical/fixed-points.js +81 -0
  346. package/dist/canonical/fixed-points.js.map +1 -0
  347. package/dist/canonical/linkage.d.ts +29 -4
  348. package/dist/canonical/linkage.d.ts.map +1 -1
  349. package/dist/canonical/linkage.js +47 -64
  350. package/dist/canonical/linkage.js.map +1 -1
  351. package/dist/canonical/normal-form.d.ts +0 -8
  352. package/dist/canonical/normal-form.d.ts.map +1 -1
  353. package/dist/canonical/normal-form.js +22 -23
  354. package/dist/canonical/normal-form.js.map +1 -1
  355. package/dist/canonical/registry.js.map +1 -1
  356. package/dist/canonical/residual.js.map +1 -1
  357. package/dist/canonical/seed-l-layer.d.ts +7 -1
  358. package/dist/canonical/seed-l-layer.d.ts.map +1 -1
  359. package/dist/canonical/seed-l-layer.js +7 -1
  360. package/dist/canonical/seed-l-layer.js.map +1 -1
  361. package/dist/canonical/structural.d.ts +42 -21
  362. package/dist/canonical/structural.d.ts.map +1 -1
  363. package/dist/canonical/structural.js +64 -23
  364. package/dist/canonical/structural.js.map +1 -1
  365. package/dist/cases/brownian-sphere.d.ts +3 -3
  366. package/dist/cases/brownian-sphere.d.ts.map +1 -1
  367. package/dist/cases/brownian-sphere.js +10 -9
  368. package/dist/cases/brownian-sphere.js.map +1 -1
  369. package/dist/cases/damped-resonator.d.ts.map +1 -1
  370. package/dist/cases/damped-resonator.js +8 -11
  371. package/dist/cases/damped-resonator.js.map +1 -1
  372. package/dist/cases/index.js.map +1 -1
  373. package/dist/cases/kepler-rv.d.ts +1 -1
  374. package/dist/cases/kepler-rv.d.ts.map +1 -1
  375. package/dist/cases/kepler-rv.js +3 -2
  376. package/dist/cases/kepler-rv.js.map +1 -1
  377. package/dist/cases/lumped-cooling.d.ts +8 -3
  378. package/dist/cases/lumped-cooling.d.ts.map +1 -1
  379. package/dist/cases/lumped-cooling.js +22 -24
  380. package/dist/cases/lumped-cooling.js.map +1 -1
  381. package/dist/cases/quadrature.d.ts +7 -9
  382. package/dist/cases/quadrature.d.ts.map +1 -1
  383. package/dist/cases/quadrature.js +28 -32
  384. package/dist/cases/quadrature.js.map +1 -1
  385. package/dist/cases/resistor-noise.js +7 -7
  386. package/dist/cases/resistor-noise.js.map +1 -1
  387. package/dist/cases/skin-depth.d.ts +0 -4
  388. package/dist/cases/skin-depth.d.ts.map +1 -1
  389. package/dist/cases/skin-depth.js +3 -7
  390. package/dist/cases/skin-depth.js.map +1 -1
  391. package/dist/cases/types.js.map +1 -1
  392. package/dist/cli/args.d.ts +30 -3
  393. package/dist/cli/args.d.ts.map +1 -1
  394. package/dist/cli/args.js +47 -9
  395. package/dist/cli/args.js.map +1 -1
  396. package/dist/cli/bindings.d.ts +13 -0
  397. package/dist/cli/bindings.d.ts.map +1 -0
  398. package/dist/cli/bindings.js +33 -0
  399. package/dist/cli/bindings.js.map +1 -0
  400. package/dist/cli/closed-form-range.js.map +1 -1
  401. package/dist/cli/command.d.ts +8 -1
  402. package/dist/cli/command.d.ts.map +1 -1
  403. package/dist/cli/command.js.map +1 -1
  404. package/dist/cli/commands/_atlas-map.d.ts +2 -11
  405. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  406. package/dist/cli/commands/_atlas-map.js +50 -35
  407. package/dist/cli/commands/_atlas-map.js.map +1 -1
  408. package/dist/cli/commands/_atlas-route.d.ts.map +1 -1
  409. package/dist/cli/commands/_atlas-route.js +6 -2
  410. package/dist/cli/commands/_atlas-route.js.map +1 -1
  411. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  412. package/dist/cli/commands/_discovery-opts.js +48 -14
  413. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  414. package/dist/cli/commands/atlas.d.ts.map +1 -1
  415. package/dist/cli/commands/atlas.js +9 -8
  416. package/dist/cli/commands/atlas.js.map +1 -1
  417. package/dist/cli/commands/audit.d.ts.map +1 -1
  418. package/dist/cli/commands/audit.js +20 -20
  419. package/dist/cli/commands/audit.js.map +1 -1
  420. package/dist/cli/commands/axes.d.ts.map +1 -1
  421. package/dist/cli/commands/axes.js +20 -1
  422. package/dist/cli/commands/axes.js.map +1 -1
  423. package/dist/cli/commands/candidates.d.ts.map +1 -1
  424. package/dist/cli/commands/candidates.js +16 -8
  425. package/dist/cli/commands/candidates.js.map +1 -1
  426. package/dist/cli/commands/canonical.js.map +1 -1
  427. package/dist/cli/commands/chain.js +1 -1
  428. package/dist/cli/commands/chain.js.map +1 -1
  429. package/dist/cli/commands/confront.d.ts.map +1 -1
  430. package/dist/cli/commands/confront.js +22 -20
  431. package/dist/cli/commands/confront.js.map +1 -1
  432. package/dist/cli/commands/connectors.js.map +1 -1
  433. package/dist/cli/commands/coverage.js.map +1 -1
  434. package/dist/cli/commands/derive.d.ts.map +1 -1
  435. package/dist/cli/commands/derive.js +60 -35
  436. package/dist/cli/commands/derive.js.map +1 -1
  437. package/dist/cli/commands/discover.d.ts.map +1 -1
  438. package/dist/cli/commands/discover.js +20 -10
  439. package/dist/cli/commands/discover.js.map +1 -1
  440. package/dist/cli/commands/eval.d.ts.map +1 -1
  441. package/dist/cli/commands/eval.js +14 -10
  442. package/dist/cli/commands/eval.js.map +1 -1
  443. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  444. package/dist/cli/commands/evaluate.js +108 -58
  445. package/dist/cli/commands/evaluate.js.map +1 -1
  446. package/dist/cli/commands/explain.d.ts.map +1 -1
  447. package/dist/cli/commands/explain.js +16 -8
  448. package/dist/cli/commands/explain.js.map +1 -1
  449. package/dist/cli/commands/frontier.js.map +1 -1
  450. package/dist/cli/commands/ground.d.ts.map +1 -1
  451. package/dist/cli/commands/ground.js +41 -10
  452. package/dist/cli/commands/ground.js.map +1 -1
  453. package/dist/cli/commands/index.js.map +1 -1
  454. package/dist/cli/commands/map.d.ts.map +1 -1
  455. package/dist/cli/commands/map.js +155 -92
  456. package/dist/cli/commands/map.js.map +1 -1
  457. package/dist/cli/commands/metric.d.ts.map +1 -1
  458. package/dist/cli/commands/metric.js +58 -20
  459. package/dist/cli/commands/metric.js.map +1 -1
  460. package/dist/cli/commands/path.d.ts +10 -0
  461. package/dist/cli/commands/path.d.ts.map +1 -1
  462. package/dist/cli/commands/path.js +29 -7
  463. package/dist/cli/commands/path.js.map +1 -1
  464. package/dist/cli/commands/predict.js.map +1 -1
  465. package/dist/cli/commands/priority.js.map +1 -1
  466. package/dist/cli/commands/probe.d.ts.map +1 -1
  467. package/dist/cli/commands/probe.js +105 -38
  468. package/dist/cli/commands/probe.js.map +1 -1
  469. package/dist/cli/commands/recover.js +1 -1
  470. package/dist/cli/commands/recover.js.map +1 -1
  471. package/dist/cli/commands/regime.d.ts +5 -4
  472. package/dist/cli/commands/regime.d.ts.map +1 -1
  473. package/dist/cli/commands/regime.js +25 -26
  474. package/dist/cli/commands/regime.js.map +1 -1
  475. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  476. package/dist/cli/commands/retrieve.js +23 -14
  477. package/dist/cli/commands/retrieve.js.map +1 -1
  478. package/dist/cli/commands/search.d.ts.map +1 -1
  479. package/dist/cli/commands/search.js +9 -4
  480. package/dist/cli/commands/search.js.map +1 -1
  481. package/dist/cli/commands/symbolic.js +31 -36
  482. package/dist/cli/commands/symbolic.js.map +1 -1
  483. package/dist/cli/commands/testplan.d.ts.map +1 -1
  484. package/dist/cli/commands/testplan.js +5 -3
  485. package/dist/cli/commands/testplan.js.map +1 -1
  486. package/dist/cli/conventions.js.map +1 -1
  487. package/dist/cli/determination.js.map +1 -1
  488. package/dist/cli/errors.js.map +1 -1
  489. package/dist/cli/euler-guard.js.map +1 -1
  490. package/dist/cli/eval-numbers.js.map +1 -1
  491. package/dist/cli/expr-print.d.ts +28 -3
  492. package/dist/cli/expr-print.d.ts.map +1 -1
  493. package/dist/cli/expr-print.js +42 -22
  494. package/dist/cli/expr-print.js.map +1 -1
  495. package/dist/cli/flag-help.js.map +1 -1
  496. package/dist/cli/graphs.js.map +1 -1
  497. package/dist/cli/library-defaults.d.ts +19 -0
  498. package/dist/cli/library-defaults.d.ts.map +1 -0
  499. package/dist/cli/library-defaults.js +22 -0
  500. package/dist/cli/library-defaults.js.map +1 -0
  501. package/dist/cli/main.d.ts +7 -0
  502. package/dist/cli/main.d.ts.map +1 -1
  503. package/dist/cli/main.js +25 -6
  504. package/dist/cli/main.js.map +1 -1
  505. package/dist/cli/map-evidence.js.map +1 -1
  506. package/dist/cli/numeric-flag.d.ts +12 -0
  507. package/dist/cli/numeric-flag.d.ts.map +1 -0
  508. package/dist/cli/numeric-flag.js +44 -0
  509. package/dist/cli/numeric-flag.js.map +1 -0
  510. package/dist/cli/output.d.ts +23 -6
  511. package/dist/cli/output.d.ts.map +1 -1
  512. package/dist/cli/output.js +15 -0
  513. package/dist/cli/output.js.map +1 -1
  514. package/dist/cli/published-url.js.map +1 -1
  515. package/dist/cli/record-reach.d.ts +6 -0
  516. package/dist/cli/record-reach.d.ts.map +1 -1
  517. package/dist/cli/record-reach.js +17 -11
  518. package/dist/cli/record-reach.js.map +1 -1
  519. package/dist/cli/record-tables.d.ts.map +1 -1
  520. package/dist/cli/record-tables.js +7 -6
  521. package/dist/cli/record-tables.js.map +1 -1
  522. package/dist/cli/record.d.ts +1 -5
  523. package/dist/cli/record.d.ts.map +1 -1
  524. package/dist/cli/record.js +40 -20
  525. package/dist/cli/record.js.map +1 -1
  526. package/dist/cli/search-index.d.ts +5 -0
  527. package/dist/cli/search-index.d.ts.map +1 -1
  528. package/dist/cli/search-index.js +19 -7
  529. package/dist/cli/search-index.js.map +1 -1
  530. package/dist/cli/statuses.d.ts +0 -2
  531. package/dist/cli/statuses.d.ts.map +1 -1
  532. package/dist/cli/statuses.js +0 -7
  533. package/dist/cli/statuses.js.map +1 -1
  534. package/dist/cli/stored-results.d.ts +7 -0
  535. package/dist/cli/stored-results.d.ts.map +1 -0
  536. package/dist/cli/stored-results.js +23 -0
  537. package/dist/cli/stored-results.js.map +1 -0
  538. package/dist/cli/top-level-help.js.map +1 -1
  539. package/dist/cli/version.d.ts.map +1 -1
  540. package/dist/cli/version.js +7 -5
  541. package/dist/cli/version.js.map +1 -1
  542. package/dist/cli-api.d.ts +49 -14
  543. package/dist/cli-api.d.ts.map +1 -1
  544. package/dist/cli-api.js +42 -17
  545. package/dist/cli-api.js.map +1 -1
  546. package/dist/composition/adjudication.js.map +1 -1
  547. package/dist/composition/algebraic-equivalence.d.ts +43 -0
  548. package/dist/composition/algebraic-equivalence.d.ts.map +1 -0
  549. package/dist/composition/algebraic-equivalence.js +115 -0
  550. package/dist/composition/algebraic-equivalence.js.map +1 -0
  551. package/dist/composition/aliases.js.map +1 -1
  552. package/dist/composition/audit-coverage.d.ts +2 -0
  553. package/dist/composition/audit-coverage.d.ts.map +1 -1
  554. package/dist/composition/audit-coverage.js.map +1 -1
  555. package/dist/composition/axes.d.ts +6 -0
  556. package/dist/composition/axes.d.ts.map +1 -1
  557. package/dist/composition/axes.js +18 -6
  558. package/dist/composition/axes.js.map +1 -1
  559. package/dist/composition/axis-audit.d.ts +47 -20
  560. package/dist/composition/axis-audit.d.ts.map +1 -1
  561. package/dist/composition/axis-audit.js +82 -9
  562. package/dist/composition/axis-audit.js.map +1 -1
  563. package/dist/composition/bridge-analysis.d.ts +14 -15
  564. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  565. package/dist/composition/bridge-analysis.js +148 -91
  566. package/dist/composition/bridge-analysis.js.map +1 -1
  567. package/dist/composition/bridge-prediction.d.ts +5 -1
  568. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  569. package/dist/composition/bridge-prediction.js +12 -16
  570. package/dist/composition/bridge-prediction.js.map +1 -1
  571. package/dist/composition/buckingham-filter.js.map +1 -1
  572. package/dist/composition/canonical-compare.d.ts +40 -0
  573. package/dist/composition/canonical-compare.d.ts.map +1 -1
  574. package/dist/composition/canonical-compare.js +134 -26
  575. package/dist/composition/canonical-compare.js.map +1 -1
  576. package/dist/composition/canonical-graph.d.ts +9 -10
  577. package/dist/composition/canonical-graph.d.ts.map +1 -1
  578. package/dist/composition/canonical-graph.js +33 -102
  579. package/dist/composition/canonical-graph.js.map +1 -1
  580. package/dist/composition/canonical-json.js +2 -2
  581. package/dist/composition/canonical-json.js.map +1 -1
  582. package/dist/composition/canonical-prefactors.js.map +1 -1
  583. package/dist/composition/catalog-graph.d.ts.map +1 -1
  584. package/dist/composition/catalog-graph.js +8 -25
  585. package/dist/composition/catalog-graph.js.map +1 -1
  586. package/dist/composition/chain-candidate.d.ts +10 -0
  587. package/dist/composition/chain-candidate.d.ts.map +1 -1
  588. package/dist/composition/chain-candidate.js +11 -2
  589. package/dist/composition/chain-candidate.js.map +1 -1
  590. package/dist/composition/chain-match.d.ts +6 -3
  591. package/dist/composition/chain-match.d.ts.map +1 -1
  592. package/dist/composition/chain-match.js +4 -1
  593. package/dist/composition/chain-match.js.map +1 -1
  594. package/dist/composition/chain-regime.js.map +1 -1
  595. package/dist/composition/chain-result.d.ts.map +1 -1
  596. package/dist/composition/chain-result.js +2 -14
  597. package/dist/composition/chain-result.js.map +1 -1
  598. package/dist/composition/compose-surface.js.map +1 -1
  599. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  600. package/dist/composition/compose-symbolic.js +3 -2
  601. package/dist/composition/compose-symbolic.js.map +1 -1
  602. package/dist/composition/compose.d.ts.map +1 -1
  603. package/dist/composition/compose.js +166 -41
  604. package/dist/composition/compose.js.map +1 -1
  605. package/dist/composition/composition-recovery.d.ts.map +1 -1
  606. package/dist/composition/composition-recovery.js +4 -7
  607. package/dist/composition/composition-recovery.js.map +1 -1
  608. package/dist/composition/consequence.d.ts.map +1 -1
  609. package/dist/composition/consequence.js +15 -6
  610. package/dist/composition/consequence.js.map +1 -1
  611. package/dist/composition/consistency.js.map +1 -1
  612. package/dist/composition/descriptor.d.ts +1 -1
  613. package/dist/composition/descriptor.d.ts.map +1 -1
  614. package/dist/composition/descriptor.js.map +1 -1
  615. package/dist/composition/dimension-adjacency.js.map +1 -1
  616. package/dist/composition/discovery.d.ts +77 -11
  617. package/dist/composition/discovery.d.ts.map +1 -1
  618. package/dist/composition/discovery.js +194 -80
  619. package/dist/composition/discovery.js.map +1 -1
  620. package/dist/composition/edge.d.ts +40 -10
  621. package/dist/composition/edge.d.ts.map +1 -1
  622. package/dist/composition/edge.js +47 -12
  623. package/dist/composition/edge.js.map +1 -1
  624. package/dist/composition/enumerate.d.ts +2 -2
  625. package/dist/composition/enumerate.d.ts.map +1 -1
  626. package/dist/composition/enumerate.js +18 -3
  627. package/dist/composition/enumerate.js.map +1 -1
  628. package/dist/composition/evaluate-relation.d.ts +35 -11
  629. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  630. package/dist/composition/evaluate-relation.js +60 -39
  631. package/dist/composition/evaluate-relation.js.map +1 -1
  632. package/dist/composition/explain.d.ts +5 -9
  633. package/dist/composition/explain.d.ts.map +1 -1
  634. package/dist/composition/explain.js +38 -18
  635. package/dist/composition/explain.js.map +1 -1
  636. package/dist/composition/expr-eval.d.ts.map +1 -1
  637. package/dist/composition/expr-eval.js +2 -11
  638. package/dist/composition/expr-eval.js.map +1 -1
  639. package/dist/composition/expr-simplify.d.ts +16 -0
  640. package/dist/composition/expr-simplify.d.ts.map +1 -1
  641. package/dist/composition/expr-simplify.js +24 -59
  642. package/dist/composition/expr-simplify.js.map +1 -1
  643. package/dist/composition/expr-subst.js.map +1 -1
  644. package/dist/composition/formula-shape.d.ts +28 -0
  645. package/dist/composition/formula-shape.d.ts.map +1 -1
  646. package/dist/composition/formula-shape.js +96 -2
  647. package/dist/composition/formula-shape.js.map +1 -1
  648. package/dist/composition/frontier-account.d.ts +3 -2
  649. package/dist/composition/frontier-account.d.ts.map +1 -1
  650. package/dist/composition/frontier-account.js +7 -3
  651. package/dist/composition/frontier-account.js.map +1 -1
  652. package/dist/composition/graph-structure.d.ts +98 -0
  653. package/dist/composition/graph-structure.d.ts.map +1 -0
  654. package/dist/composition/graph-structure.js +167 -0
  655. package/dist/composition/graph-structure.js.map +1 -0
  656. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  657. package/dist/composition/graph-viz-svg.js +1 -1
  658. package/dist/composition/graph-viz-svg.js.map +1 -1
  659. package/dist/composition/graph-viz.d.ts.map +1 -1
  660. package/dist/composition/graph-viz.js +8 -37
  661. package/dist/composition/graph-viz.js.map +1 -1
  662. package/dist/composition/grounding.js.map +1 -1
  663. package/dist/composition/identifiability.d.ts +91 -4
  664. package/dist/composition/identifiability.d.ts.map +1 -1
  665. package/dist/composition/identifiability.js +363 -6
  666. package/dist/composition/identifiability.js.map +1 -1
  667. package/dist/composition/index.d.ts +14 -8
  668. package/dist/composition/index.d.ts.map +1 -1
  669. package/dist/composition/index.js +7 -5
  670. package/dist/composition/index.js.map +1 -1
  671. package/dist/composition/mathts-quiet.d.ts +29 -0
  672. package/dist/composition/mathts-quiet.d.ts.map +1 -0
  673. package/dist/composition/mathts-quiet.js +57 -0
  674. package/dist/composition/mathts-quiet.js.map +1 -0
  675. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  676. package/dist/composition/mathts-scalar-symbols.js +20 -35
  677. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  678. package/dist/composition/not-composable-seeds.d.ts +3 -1
  679. package/dist/composition/not-composable-seeds.d.ts.map +1 -1
  680. package/dist/composition/not-composable-seeds.js +2 -0
  681. package/dist/composition/not-composable-seeds.js.map +1 -1
  682. package/dist/composition/probe/backend-protocol.js.map +1 -1
  683. package/dist/composition/probe/candidate-store.js.map +1 -1
  684. package/dist/composition/probe/corpus.d.ts +4 -2
  685. package/dist/composition/probe/corpus.d.ts.map +1 -1
  686. package/dist/composition/probe/corpus.js +20 -9
  687. package/dist/composition/probe/corpus.js.map +1 -1
  688. package/dist/composition/probe/dataset.d.ts +17 -0
  689. package/dist/composition/probe/dataset.d.ts.map +1 -1
  690. package/dist/composition/probe/dataset.js +95 -50
  691. package/dist/composition/probe/dataset.js.map +1 -1
  692. package/dist/composition/probe/experiment-design.d.ts +5 -1
  693. package/dist/composition/probe/experiment-design.d.ts.map +1 -1
  694. package/dist/composition/probe/experiment-design.js +44 -24
  695. package/dist/composition/probe/experiment-design.js.map +1 -1
  696. package/dist/composition/probe/expression-gaps.js.map +1 -1
  697. package/dist/composition/probe/falsify.d.ts +14 -3
  698. package/dist/composition/probe/falsify.d.ts.map +1 -1
  699. package/dist/composition/probe/falsify.js +16 -27
  700. package/dist/composition/probe/falsify.js.map +1 -1
  701. package/dist/composition/probe/fingerprint.js.map +1 -1
  702. package/dist/composition/probe/fit.d.ts +7 -1
  703. package/dist/composition/probe/fit.d.ts.map +1 -1
  704. package/dist/composition/probe/fit.js +48 -23
  705. package/dist/composition/probe/fit.js.map +1 -1
  706. package/dist/composition/probe/frontier.d.ts.map +1 -1
  707. package/dist/composition/probe/frontier.js +33 -15
  708. package/dist/composition/probe/frontier.js.map +1 -1
  709. package/dist/composition/probe/generator.d.ts +27 -1
  710. package/dist/composition/probe/generator.d.ts.map +1 -1
  711. package/dist/composition/probe/generator.js +53 -30
  712. package/dist/composition/probe/generator.js.map +1 -1
  713. package/dist/composition/probe/index.d.ts +18 -2
  714. package/dist/composition/probe/index.d.ts.map +1 -1
  715. package/dist/composition/probe/index.js +10 -2
  716. package/dist/composition/probe/index.js.map +1 -1
  717. package/dist/composition/probe/limits.d.ts +24 -1
  718. package/dist/composition/probe/limits.d.ts.map +1 -1
  719. package/dist/composition/probe/limits.js +53 -11
  720. package/dist/composition/probe/limits.js.map +1 -1
  721. package/dist/composition/probe/metadata.js.map +1 -1
  722. package/dist/composition/probe/pipeline.d.ts +5 -0
  723. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  724. package/dist/composition/probe/pipeline.js +22 -9
  725. package/dist/composition/probe/pipeline.js.map +1 -1
  726. package/dist/composition/probe/power-law.d.ts +121 -0
  727. package/dist/composition/probe/power-law.d.ts.map +1 -0
  728. package/dist/composition/probe/power-law.js +255 -0
  729. package/dist/composition/probe/power-law.js.map +1 -0
  730. package/dist/composition/probe/problem.d.ts +12 -1
  731. package/dist/composition/probe/problem.d.ts.map +1 -1
  732. package/dist/composition/probe/problem.js +242 -48
  733. package/dist/composition/probe/problem.js.map +1 -1
  734. package/dist/composition/probe/report.js +1 -1
  735. package/dist/composition/probe/report.js.map +1 -1
  736. package/dist/composition/probe/residual.d.ts +6 -1
  737. package/dist/composition/probe/residual.d.ts.map +1 -1
  738. package/dist/composition/probe/residual.js +9 -7
  739. package/dist/composition/probe/residual.js.map +1 -1
  740. package/dist/composition/probe/run-manifest.js +2 -2
  741. package/dist/composition/probe/run-manifest.js.map +1 -1
  742. package/dist/composition/probe/scoring.d.ts +2 -1
  743. package/dist/composition/probe/scoring.d.ts.map +1 -1
  744. package/dist/composition/probe/scoring.js +21 -7
  745. package/dist/composition/probe/scoring.js.map +1 -1
  746. package/dist/composition/probe/search-budget.js.map +1 -1
  747. package/dist/composition/probe/serialize.js.map +1 -1
  748. package/dist/composition/probe/structure.d.ts +82 -17
  749. package/dist/composition/probe/structure.d.ts.map +1 -1
  750. package/dist/composition/probe/structure.js +129 -55
  751. package/dist/composition/probe/structure.js.map +1 -1
  752. package/dist/composition/probe/study.d.ts +35 -12
  753. package/dist/composition/probe/study.d.ts.map +1 -1
  754. package/dist/composition/probe/study.js +241 -184
  755. package/dist/composition/probe/study.js.map +1 -1
  756. package/dist/composition/probe/t-tail.d.ts +17 -0
  757. package/dist/composition/probe/t-tail.d.ts.map +1 -0
  758. package/dist/composition/probe/t-tail.js +32 -0
  759. package/dist/composition/probe/t-tail.js.map +1 -0
  760. package/dist/composition/probe/types.d.ts +6 -1
  761. package/dist/composition/probe/types.d.ts.map +1 -1
  762. package/dist/composition/probe/types.js +2 -0
  763. package/dist/composition/probe/types.js.map +1 -1
  764. package/dist/composition/proposed-bridges.d.ts +51 -13
  765. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  766. package/dist/composition/proposed-bridges.js +110 -58
  767. package/dist/composition/proposed-bridges.js.map +1 -1
  768. package/dist/composition/quantities.d.ts +0 -4
  769. package/dist/composition/quantities.d.ts.map +1 -1
  770. package/dist/composition/quantities.js +5 -5
  771. package/dist/composition/quantities.js.map +1 -1
  772. package/dist/composition/quantity-clusters.d.ts +48 -0
  773. package/dist/composition/quantity-clusters.d.ts.map +1 -0
  774. package/dist/composition/quantity-clusters.js +98 -0
  775. package/dist/composition/quantity-clusters.js.map +1 -0
  776. package/dist/composition/quantity.d.ts +18 -2
  777. package/dist/composition/quantity.d.ts.map +1 -1
  778. package/dist/composition/quantity.js +35 -6
  779. package/dist/composition/quantity.js.map +1 -1
  780. package/dist/composition/rational-exponent.d.ts +40 -0
  781. package/dist/composition/rational-exponent.d.ts.map +1 -0
  782. package/dist/composition/rational-exponent.js +65 -0
  783. package/dist/composition/rational-exponent.js.map +1 -0
  784. package/dist/composition/representative-values.d.ts +22 -0
  785. package/dist/composition/representative-values.d.ts.map +1 -1
  786. package/dist/composition/representative-values.js +23 -0
  787. package/dist/composition/representative-values.js.map +1 -1
  788. package/dist/composition/retrodiction.d.ts +16 -6
  789. package/dist/composition/retrodiction.d.ts.map +1 -1
  790. package/dist/composition/retrodiction.js +36 -10
  791. package/dist/composition/retrodiction.js.map +1 -1
  792. package/dist/composition/uncertainty.js.map +1 -1
  793. package/dist/composition/user-equation.d.ts.map +1 -1
  794. package/dist/composition/user-equation.js +2 -2
  795. package/dist/composition/user-equation.js.map +1 -1
  796. package/dist/core/assignment.d.ts +19 -0
  797. package/dist/core/assignment.d.ts.map +1 -0
  798. package/dist/core/assignment.js +19 -0
  799. package/dist/core/assignment.js.map +1 -0
  800. package/dist/core/axes-registry.d.ts +8 -5
  801. package/dist/core/axes-registry.d.ts.map +1 -1
  802. package/dist/core/axes-registry.js.map +1 -1
  803. package/dist/core/cell.js.map +1 -1
  804. package/dist/core/compare.d.ts +32 -0
  805. package/dist/core/compare.d.ts.map +1 -0
  806. package/dist/core/compare.js +46 -0
  807. package/dist/core/compare.js.map +1 -0
  808. package/dist/core/constants.d.ts +35 -35
  809. package/dist/core/constants.d.ts.map +1 -1
  810. package/dist/core/constants.js +52 -37
  811. package/dist/core/constants.js.map +1 -1
  812. package/dist/core/data-file.d.ts +7 -0
  813. package/dist/core/data-file.d.ts.map +1 -1
  814. package/dist/core/data-file.js +17 -0
  815. package/dist/core/data-file.js.map +1 -1
  816. package/dist/core/flux-rules.js +1 -1
  817. package/dist/core/flux-rules.js.map +1 -1
  818. package/dist/core/format.d.ts +36 -0
  819. package/dist/core/format.d.ts.map +1 -0
  820. package/dist/core/format.js +39 -0
  821. package/dist/core/format.js.map +1 -0
  822. package/dist/core/hash.d.ts +14 -0
  823. package/dist/core/hash.d.ts.map +1 -0
  824. package/dist/core/hash.js +17 -0
  825. package/dist/core/hash.js.map +1 -0
  826. package/dist/core/json-schema.d.ts +3 -1
  827. package/dist/core/json-schema.d.ts.map +1 -1
  828. package/dist/core/json-schema.js +41 -16
  829. package/dist/core/json-schema.js.map +1 -1
  830. package/dist/core/labeled-tensor.d.ts +6 -1
  831. package/dist/core/labeled-tensor.d.ts.map +1 -1
  832. package/dist/core/labeled-tensor.js +18 -16
  833. package/dist/core/labeled-tensor.js.map +1 -1
  834. package/dist/core/mathts-read.d.ts +25 -0
  835. package/dist/core/mathts-read.d.ts.map +1 -0
  836. package/dist/core/mathts-read.js +51 -0
  837. package/dist/core/mathts-read.js.map +1 -0
  838. package/dist/core/regime-registry.d.ts +6 -2
  839. package/dist/core/regime-registry.d.ts.map +1 -1
  840. package/dist/core/regime-registry.js.map +1 -1
  841. package/dist/core/regime-rule-install.js.map +1 -1
  842. package/dist/core/regimes-builtins.js.map +1 -1
  843. package/dist/core/tensor.d.ts +7 -4
  844. package/dist/core/tensor.d.ts.map +1 -1
  845. package/dist/core/tensor.js +64 -8
  846. package/dist/core/tensor.js.map +1 -1
  847. package/dist/core/types.d.ts +5 -5
  848. package/dist/core/types.js.map +1 -1
  849. package/dist/core/universal-index.js.map +1 -1
  850. package/dist/diff/bridge-ast-gradient.d.ts +4 -5
  851. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  852. package/dist/diff/bridge-ast-gradient.js +10 -6
  853. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  854. package/dist/diff/bridge-gradient.d.ts +43 -86
  855. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  856. package/dist/diff/bridge-gradient.js +40 -109
  857. package/dist/diff/bridge-gradient.js.map +1 -1
  858. package/dist/diff/bridge-specs.d.ts +16 -5
  859. package/dist/diff/bridge-specs.d.ts.map +1 -1
  860. package/dist/diff/bridge-specs.js +19 -4
  861. package/dist/diff/bridge-specs.js.map +1 -1
  862. package/dist/dimensional/algebra.d.ts +18 -0
  863. package/dist/dimensional/algebra.d.ts.map +1 -1
  864. package/dist/dimensional/algebra.js +41 -1
  865. package/dist/dimensional/algebra.js.map +1 -1
  866. package/dist/dimensional/ast-builders.d.ts +12 -4
  867. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  868. package/dist/dimensional/ast-builders.js +17 -5
  869. package/dist/dimensional/ast-builders.js.map +1 -1
  870. package/dist/dimensional/ast-leaves.d.ts +81 -0
  871. package/dist/dimensional/ast-leaves.d.ts.map +1 -0
  872. package/dist/dimensional/ast-leaves.js +146 -0
  873. package/dist/dimensional/ast-leaves.js.map +1 -0
  874. package/dist/dimensional/ast-types.js.map +1 -1
  875. package/dist/dimensional/bridge-check.js.map +1 -1
  876. package/dist/dimensional/buckingham.d.ts.map +1 -1
  877. package/dist/dimensional/buckingham.js +15 -27
  878. package/dist/dimensional/buckingham.js.map +1 -1
  879. package/dist/dimensional/connection-validators.d.ts +2 -1
  880. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  881. package/dist/dimensional/connection-validators.js.map +1 -1
  882. package/dist/dimensional/connection.js.map +1 -1
  883. package/dist/dimensional/constant-rows.d.ts.map +1 -1
  884. package/dist/dimensional/constant-rows.js +17 -13
  885. package/dist/dimensional/constant-rows.js.map +1 -1
  886. package/dist/dimensional/constants.d.ts +5 -6
  887. package/dist/dimensional/constants.d.ts.map +1 -1
  888. package/dist/dimensional/constants.js +5 -6
  889. package/dist/dimensional/constants.js.map +1 -1
  890. package/dist/dimensional/curvature-composite.js.map +1 -1
  891. package/dist/dimensional/curvature-invariants.js.map +1 -1
  892. package/dist/dimensional/curvature.js.map +1 -1
  893. package/dist/dimensional/dimension-inference.d.ts.map +1 -1
  894. package/dist/dimensional/dimension-inference.js +1 -2
  895. package/dist/dimensional/dimension-inference.js.map +1 -1
  896. package/dist/dimensional/dimension-spec.d.ts +13 -7
  897. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  898. package/dist/dimensional/dimension-spec.js +49 -23
  899. package/dist/dimensional/dimension-spec.js.map +1 -1
  900. package/dist/dimensional/einstein-equation.js.map +1 -1
  901. package/dist/dimensional/errors.d.ts +4 -2
  902. package/dist/dimensional/errors.d.ts.map +1 -1
  903. package/dist/dimensional/errors.js +3 -17
  904. package/dist/dimensional/errors.js.map +1 -1
  905. package/dist/dimensional/exact-scale.d.ts +0 -17
  906. package/dist/dimensional/exact-scale.d.ts.map +1 -1
  907. package/dist/dimensional/exact-scale.js +8 -8
  908. package/dist/dimensional/exact-scale.js.map +1 -1
  909. package/dist/dimensional/field-equation-helpers.js.map +1 -1
  910. package/dist/dimensional/formula-names.js.map +1 -1
  911. package/dist/dimensional/fresh-label.js.map +1 -1
  912. package/dist/dimensional/friedmann-equation.d.ts +3 -3
  913. package/dist/dimensional/friedmann-equation.js +3 -3
  914. package/dist/dimensional/friedmann-equation.js.map +1 -1
  915. package/dist/dimensional/gauge-field.d.ts +2 -3
  916. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  917. package/dist/dimensional/gauge-field.js +2 -3
  918. package/dist/dimensional/gauge-field.js.map +1 -1
  919. package/dist/dimensional/hyphen-names.d.ts +12 -2
  920. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  921. package/dist/dimensional/hyphen-names.js +45 -12
  922. package/dist/dimensional/hyphen-names.js.map +1 -1
  923. package/dist/dimensional/killing-validators.js.map +1 -1
  924. package/dist/dimensional/klein-gordon-equation.js.map +1 -1
  925. package/dist/dimensional/metric-validators.d.ts +2 -1
  926. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  927. package/dist/dimensional/metric-validators.js.map +1 -1
  928. package/dist/dimensional/metric.d.ts.map +1 -1
  929. package/dist/dimensional/metric.js +0 -1
  930. package/dist/dimensional/metric.js.map +1 -1
  931. package/dist/dimensional/natural-units.js.map +1 -1
  932. package/dist/dimensional/quantity-registry.d.ts +13 -0
  933. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  934. package/dist/dimensional/quantity-registry.js +14 -6
  935. package/dist/dimensional/quantity-registry.js.map +1 -1
  936. package/dist/dimensional/rg-flow.js.map +1 -1
  937. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  938. package/dist/dimensional/symbolic-constants.d.ts +9 -0
  939. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  940. package/dist/dimensional/symbolic-constants.js +20 -3
  941. package/dist/dimensional/symbolic-constants.js.map +1 -1
  942. package/dist/dimensional/tensor-trace.js.map +1 -1
  943. package/dist/dimensional/tensor.js.map +1 -1
  944. package/dist/dimensional/types.d.ts +36 -0
  945. package/dist/dimensional/types.d.ts.map +1 -1
  946. package/dist/dimensional/types.js +45 -7
  947. package/dist/dimensional/types.js.map +1 -1
  948. package/dist/dimensional/unit-convention.d.ts +0 -2
  949. package/dist/dimensional/unit-convention.d.ts.map +1 -1
  950. package/dist/dimensional/unit-convention.js +2 -2
  951. package/dist/dimensional/unit-convention.js.map +1 -1
  952. package/dist/dimensional/unit-data.d.ts.map +1 -1
  953. package/dist/dimensional/unit-data.js +11 -7
  954. package/dist/dimensional/unit-data.js.map +1 -1
  955. package/dist/dimensional/units.d.ts.map +1 -1
  956. package/dist/dimensional/units.js +38 -20
  957. package/dist/dimensional/units.js.map +1 -1
  958. package/dist/dimensional/validator-registry.js.map +1 -1
  959. package/dist/dimensional/validator.d.ts +0 -16
  960. package/dist/dimensional/validator.d.ts.map +1 -1
  961. package/dist/dimensional/validator.js +65 -29
  962. package/dist/dimensional/validator.js.map +1 -1
  963. package/dist/dimensional/weyl-validators.js.map +1 -1
  964. package/dist/index.d.ts +59 -8
  965. package/dist/index.d.ts.map +1 -1
  966. package/dist/index.js +22 -24
  967. package/dist/index.js.map +1 -1
  968. package/dist/numerical/bianchi-residual.js.map +1 -1
  969. package/dist/numerical/binding-value.d.ts +11 -6
  970. package/dist/numerical/binding-value.d.ts.map +1 -1
  971. package/dist/numerical/binding-value.js +126 -122
  972. package/dist/numerical/binding-value.js.map +1 -1
  973. package/dist/numerical/christoffel-flat.d.ts.map +1 -1
  974. package/dist/numerical/christoffel-flat.js +3 -2
  975. package/dist/numerical/christoffel-flat.js.map +1 -1
  976. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  977. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  978. package/dist/numerical/covariant-eikonal.js +36 -13
  979. package/dist/numerical/covariant-eikonal.js.map +1 -1
  980. package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
  981. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  982. package/dist/numerical/curvature-lowering-helpers.js +9 -5
  983. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  984. package/dist/numerical/derivative-lowering.js.map +1 -1
  985. package/dist/numerical/einstein-equation.js.map +1 -1
  986. package/dist/numerical/engine-registry.js.map +1 -1
  987. package/dist/numerical/errors.d.ts +7 -3
  988. package/dist/numerical/errors.d.ts.map +1 -1
  989. package/dist/numerical/errors.js +5 -8
  990. package/dist/numerical/errors.js.map +1 -1
  991. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -1
  992. package/dist/numerical/evaluator-uncertainty.js +19 -2
  993. package/dist/numerical/evaluator-uncertainty.js.map +1 -1
  994. package/dist/numerical/finite-difference.d.ts +22 -0
  995. package/dist/numerical/finite-difference.d.ts.map +1 -0
  996. package/dist/numerical/finite-difference.js +27 -0
  997. package/dist/numerical/finite-difference.js.map +1 -0
  998. package/dist/numerical/formula-contract.d.ts +63 -7
  999. package/dist/numerical/formula-contract.d.ts.map +1 -1
  1000. package/dist/numerical/formula-contract.js +61 -42
  1001. package/dist/numerical/formula-contract.js.map +1 -1
  1002. package/dist/numerical/formula-dimension.d.ts +8 -7
  1003. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  1004. package/dist/numerical/formula-dimension.js +58 -36
  1005. package/dist/numerical/formula-dimension.js.map +1 -1
  1006. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  1007. package/dist/numerical/formula-mathts.js +5 -2
  1008. package/dist/numerical/formula-mathts.js.map +1 -1
  1009. package/dist/numerical/formula-registry.d.ts +13 -3
  1010. package/dist/numerical/formula-registry.d.ts.map +1 -1
  1011. package/dist/numerical/formula-registry.js +7 -2
  1012. package/dist/numerical/formula-registry.js.map +1 -1
  1013. package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
  1014. package/dist/numerical/geodesic-integrator.js +22 -14
  1015. package/dist/numerical/geodesic-integrator.js.map +1 -1
  1016. package/dist/numerical/geometrized.d.ts.map +1 -1
  1017. package/dist/numerical/geometrized.js +0 -1
  1018. package/dist/numerical/geometrized.js.map +1 -1
  1019. package/dist/numerical/gl4-integrator.d.ts +28 -27
  1020. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  1021. package/dist/numerical/gl4-integrator.js +41 -42
  1022. package/dist/numerical/gl4-integrator.js.map +1 -1
  1023. package/dist/numerical/grid-field.js.map +1 -1
  1024. package/dist/numerical/index.js.map +1 -1
  1025. package/dist/numerical/input-validation.d.ts +3 -6
  1026. package/dist/numerical/input-validation.d.ts.map +1 -1
  1027. package/dist/numerical/input-validation.js +4 -8
  1028. package/dist/numerical/input-validation.js.map +1 -1
  1029. package/dist/numerical/killing.d.ts +8 -5
  1030. package/dist/numerical/killing.d.ts.map +1 -1
  1031. package/dist/numerical/killing.js.map +1 -1
  1032. package/dist/numerical/klein-gordon.js.map +1 -1
  1033. package/dist/numerical/kretschmann.js.map +1 -1
  1034. package/dist/numerical/lowering-utils.js.map +1 -1
  1035. package/dist/numerical/lowering.d.ts.map +1 -1
  1036. package/dist/numerical/lowering.js +7 -17
  1037. package/dist/numerical/lowering.js.map +1 -1
  1038. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  1039. package/dist/numerical/mathts-engine.js +16 -25
  1040. package/dist/numerical/mathts-engine.js.map +1 -1
  1041. package/dist/numerical/metric-inverse.d.ts.map +1 -1
  1042. package/dist/numerical/metric-inverse.js +83 -46
  1043. package/dist/numerical/metric-inverse.js.map +1 -1
  1044. package/dist/numerical/null-ic.js.map +1 -1
  1045. package/dist/numerical/null-ray-integrator.d.ts +2 -1
  1046. package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
  1047. package/dist/numerical/null-ray-integrator.js +12 -12
  1048. package/dist/numerical/null-ray-integrator.js.map +1 -1
  1049. package/dist/numerical/painleve-gullstrand-metric.js +2 -2
  1050. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  1051. package/dist/numerical/pderiv.d.ts.map +1 -1
  1052. package/dist/numerical/pderiv.js +9 -2
  1053. package/dist/numerical/pderiv.js.map +1 -1
  1054. package/dist/numerical/perihelion-finder.d.ts +0 -36
  1055. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  1056. package/dist/numerical/perihelion-finder.js +41 -87
  1057. package/dist/numerical/perihelion-finder.js.map +1 -1
  1058. package/dist/numerical/quadrature.d.ts +5 -2
  1059. package/dist/numerical/quadrature.d.ts.map +1 -1
  1060. package/dist/numerical/quadrature.js +19 -4
  1061. package/dist/numerical/quadrature.js.map +1 -1
  1062. package/dist/numerical/rk4-trajectory.d.ts +10 -0
  1063. package/dist/numerical/rk4-trajectory.d.ts.map +1 -0
  1064. package/dist/numerical/rk4-trajectory.js +37 -0
  1065. package/dist/numerical/rk4-trajectory.js.map +1 -0
  1066. package/dist/numerical/schwarzschild.d.ts +14 -0
  1067. package/dist/numerical/schwarzschild.d.ts.map +1 -0
  1068. package/dist/numerical/schwarzschild.js +17 -0
  1069. package/dist/numerical/schwarzschild.js.map +1 -0
  1070. package/dist/numerical/spacetime-metrics.d.ts +25 -19
  1071. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  1072. package/dist/numerical/spacetime-metrics.js +180 -286
  1073. package/dist/numerical/spacetime-metrics.js.map +1 -1
  1074. package/dist/numerical/statistics.d.ts +24 -0
  1075. package/dist/numerical/statistics.d.ts.map +1 -0
  1076. package/dist/numerical/statistics.js +52 -0
  1077. package/dist/numerical/statistics.js.map +1 -0
  1078. package/dist/numerical/strides.js.map +1 -1
  1079. package/dist/numerical/tensor-engine.d.ts +30 -5
  1080. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  1081. package/dist/numerical/tensor-engine.js +12 -0
  1082. package/dist/numerical/tensor-engine.js.map +1 -1
  1083. package/dist/numerical/types.js.map +1 -1
  1084. package/dist/numerical/weyl-lowering.js.map +1 -1
  1085. package/dist/relations/category.js.map +1 -1
  1086. package/dist/relations/composition-table.d.ts +4 -4
  1087. package/dist/relations/composition-table.js +4 -4
  1088. package/dist/relations/composition-table.js.map +1 -1
  1089. package/dist/relations/conventions.js.map +1 -1
  1090. package/dist/relations/domain-regimes.js.map +1 -1
  1091. package/dist/relations/regime-registration.js.map +1 -1
  1092. package/dist/relations/regime-vocabularies.js.map +1 -1
  1093. package/dist/relations/regime.d.ts +28 -8
  1094. package/dist/relations/regime.d.ts.map +1 -1
  1095. package/dist/relations/regime.js +44 -15
  1096. package/dist/relations/regime.js.map +1 -1
  1097. package/dist/relations/types.d.ts +18 -5
  1098. package/dist/relations/types.d.ts.map +1 -1
  1099. package/dist/relations/types.js +5 -3
  1100. package/dist/relations/types.js.map +1 -1
  1101. package/package.json +16 -20
  1102. package/dist/bridges/registry.d.ts +0 -60
  1103. package/dist/bridges/registry.d.ts.map +0 -1
  1104. package/dist/bridges/registry.js +0 -87
  1105. package/dist/bridges/registry.js.map +0 -1
  1106. package/dist/cli/poster-source.d.ts +0 -154
  1107. package/dist/cli/poster-source.d.ts.map +0 -1
  1108. package/dist/cli/poster-source.js +0 -184
  1109. package/dist/cli/poster-source.js.map +0 -1
@@ -1,70 +1,62 @@
1
1
  /**
2
- * Reviewed `formalRef`s keyed by the vendored PhysJS bridge manifest.
2
+ * Reviewed `formalRef`s keyed by this repository's Lean manifest.
3
3
  *
4
- * The manifest file is `formal/physjs/manifest.json` (PhysJS `manifest/bridges.json`
5
- * at the commit that file records). `src/` cannot import a file outside its root,
6
- * so `physjs-entries.generated.ts` is the table this module reads.
7
- * `bun run physjs:table` writes that file from the manifest and writes nothing else.
8
- * `tests/atlas/physjs-manifest.test.ts` fails when the file and that table disagree
9
- * on the commit, a theorem, a key, or the coverage phrase.
4
+ * The Lean proofs are this repository's `lean/` (they moved from PhysJS in
5
+ * 11.0.0, with their history; the `PhysJS.*` theorem names are Lean
6
+ * namespaces, not a dependency). The manifest file is `formal/lean/manifest.json`.
7
+ * `src/` cannot import a file outside its root, so `physjs-entries.generated.ts`
8
+ * is the table this module reads. `bun run physjs:table` writes that file from
9
+ * the manifest and writes nothing else. `tests/atlas/physjs-manifest.test.ts`
10
+ * fails when the file and that table disagree on the toolchain, a theorem, a
11
+ * key, or the coverage phrase. CI's `lean` job builds every file under `lean/`
12
+ * and audits its axioms; this module does not run Lean.
10
13
  *
11
- * The commit is `PHYSJS_COMMIT`, copied from the manifest. The sentence that
12
- * the pin is PhysJS `main` `03e8bb77c952f720bdd2730af2afc6a7f2d36243` is the
13
- * record from before the table was generated.
14
- * PhysJS #63 stores each Lean file at `lean/<File>.lean`. The sentence that
15
- * the pin is `92f87257a1e3086a48cdc19fe4361cc1c5909d49` is the record from
16
- * before PhysJS #65. The sentence that the pin is
17
- * `ee753df77bd5b29b7207443181606b6004bfcf6a` is the record from
18
- * before PhysJS #64. The sentence that the pin is
19
- * `4ea35872513f8d4d12a01bfac225156bdddb87a9` and that the path is
20
- * `lean/PhysJS/<File>.lean` is the record from before that flatten. The
21
- * sentence that the pin is `3af15b49be09442350510e7c7f56f4aab92ea3bc` and
22
- * that the path is `PhysJS/<File>.lean` is the record from before PhysJS #61.
23
- * Theorem names of the earlier entries are unchanged. PhysJS #62 adds be-74,
24
- * be-75, and be-76. PhysJS #64 adds be-77 through be-87. PhysJS #65 adds
25
- * be-88 through be-102.
26
- * Milestone 1's six top-level theorems are unchanged. Milestone 2 adds four
27
- * atlas entries. Milestone 2b adds fifteen catalog entries. Bucket A adds
28
- * twenty-one counted catalog entries, keyed `be-<n>`. BE-20 is the nested
29
- * `corollary` on `be-13` and has no key. Each statement's `kind`, nested ones
30
- * included, is the manifest's own field (schema `physjs-bridge-manifest/v2`),
31
- * which PhysJS reads from the kind line of the Lean file that declares the
32
- * theorem; this module keeps no
33
- * override and does not parse the covers line for it. The sentence that a
34
- * counted covers line begins with `reduction`, `limit`, or `derivation-step`,
35
- * and that a catalog entry's `formalKind` overrides that word, is the record
36
- * from before that schema. A field of a manifest entry outside the
37
- * base fields is a nested statement: a second theorem on the same entry,
38
- * named by the field, with no key. It is recorded and compared, and it is not
39
- * a `formalRef`. The generator reads it by its shape, so a new nested name
40
- * needs no edit here. The sentence that the nested names are a fixed list in
41
- * this module and in the generator is the record from before that change.
42
- * PhysJS #66 adds be-103 through be-125. The sentence that the pin is
43
- * `03e8bb77c952f720bdd2730af2afc6a7f2d36243` and that the table stops at
44
- * be-102 is the record from before that pin. PhysJS #67 adds be-126 through
45
- * be-133. The sentence that the pin is
46
- * `d519c2c6504e7fbbd2cf6932f9e52981ce595a0f` and that the table stops at
47
- * be-125 is the record from before that pin. PhysJS #68 adds be-134 through
48
- * be-146. The sentence that the pin is
49
- * `8515c621d1c6e6d31c2eea4467181eb85d58234b` and that the table stops at
50
- * be-133 is the record from before that pin.
14
+ * Permalinks name `lean/<File>.lean` at the release tag `LEAN_SOURCE_TAG`
15
+ * (`v` and the package version), so a published version links to the proofs
16
+ * it shipped with. Which PhysJS pull request added which keys, and the PhysJS
17
+ * pins before the move, are history in `NOTES.md` and `CHANGELOG.md`.
18
+ *
19
+ * Each statement's `kind`, nested ones included, is the manifest's own field
20
+ * (schema `upt-lean-manifest/v1`), the kind line of the Lean file that
21
+ * declares the theorem (`scripts/lean-index.ts --check` compares the two);
22
+ * this module keeps no override
23
+ * and does not parse the covers line for it. A field of a manifest entry
24
+ * outside the base fields is a nested statement: a second theorem on the same
25
+ * entry, named by the field, with no key. It is recorded and compared, and it
26
+ * is not a `formalRef`. The generator reads it by its shape, so a new nested
27
+ * name needs no edit here.
28
+ *
29
+ * A reference's `fidelity` is DERIVED here, never typed on a record:
30
+ * `physjsFidelity` reads the reviewed-row table (`physjs-reviewed.ts`) and the
31
+ * sanity-lemma key list, and a key ahead of the catalog, or whose row is not
32
+ * in that table, is `'unreviewed'`.
51
33
  *
52
34
  * @module atlas/physjs-ref
53
35
  */
36
+ import { sha256Hex } from '../core/hash.js';
54
37
  import { FORMAL_REF_KINDS } from '../relations/types.js';
55
38
  import { catalogEntries, catalogIdNumber } from '../bridges/catalog-load.js';
56
- import { PHYSJS_COMMIT, PHYSJS_MATHLIB, PHYSJS_PHYS_LIB, PHYSJS_TOOLCHAIN, PHYSJS_ENTRIES as GENERATED_PHYSJS_ENTRIES, } from './physjs-entries.generated.js';
39
+ import { PHYSJS_REVIEWED_ROWS, PHYSJS_SANITY_LEMMA_KEYS } from './physjs-reviewed.js';
40
+ import { LEAN_MATHLIB, LEAN_PHYSLIB, LEAN_SOURCE_TAG, LEAN_TOOLCHAIN, PHYSJS_ENTRIES as GENERATED_PHYSJS_ENTRIES, } from './physjs-entries.generated.js';
57
41
  /**
58
- * PhysJS commit the vendored manifest records.
42
+ * The release tag whose `lean/` tree the permalinks name.
59
43
  *
60
44
  * @internal
61
45
  */
62
- export { PHYSJS_COMMIT } from './physjs-entries.generated.js';
46
+ export { LEAN_SOURCE_TAG } from './physjs-entries.generated.js';
63
47
  /**
64
48
  * Every reviewed PhysJS reference covers its statement only. A lemma about
65
49
  * `bound.delta` does not certify the regime, the horizon, or the side conditions.
66
50
  */
67
51
  const PHYSJS_COVERAGE = 'covers its statement only';
52
+ /**
53
+ * The axioms a complete Lean 4 proof over Mathlib may rest on. `#print axioms`
54
+ * of a proof with a `sorry` adds `sorryAx`, and Lean still exits 0 (TOOLS.md),
55
+ * so every statement's list is held to this set. The manifest records the
56
+ * list; CI's `lean` job audits the axioms of every declaration in `lean/`
57
+ * against the same set, and this module does not re-measure them.
58
+ */
59
+ const PHYSJS_ALLOWED_AXIOMS = new Set(['propext', 'Classical.choice', 'Quot.sound']);
68
60
  /** The fields of a manifest entry. Any other field is a nested statement. */
69
61
  const BASE_FIELDS = new Set(['key', 'bridgeId', 'theorem', 'kind', 'covers', 'coverage', 'leanProof', 'axioms', 'imports']);
70
62
  /** The fields of a statement, sorted. A nested field with exactly these is a statement. */
@@ -104,14 +96,14 @@ const FILE_BY_THEOREM = new Map(PHYSJS_ENTRIES.flatMap((entry) => [entry, ...ent
104
96
  export function physjsTheorem(key) {
105
97
  return entryByKey.get(key)?.theorem;
106
98
  }
107
- /** `formalRef.version` for the pinned manifest. */
99
+ /** `formalRef.version`: the release tag of `lean/` and the toolchain it builds with. */
108
100
  function physjsVersion() {
109
- return `physjs@${PHYSJS_COMMIT} ${PHYSJS_TOOLCHAIN} mathlib:${PHYSJS_MATHLIB} physlib@${PHYSJS_PHYS_LIB}`;
101
+ return `upt-lean@${LEAN_SOURCE_TAG} ${LEAN_TOOLCHAIN} mathlib:${LEAN_MATHLIB} physlib@${LEAN_PHYSLIB}`;
110
102
  }
111
103
  /**
112
- * Lean file name that contains `theorem` at the pinned commit.
104
+ * Lean file name under `lean/` that declares `theorem`.
113
105
  *
114
- * Read from the compiled table, which copies `formal/physjs/theorem-files.json`:
106
+ * Read from the compiled table, which copies `formal/lean/theorem-files.json`:
115
107
  * the file is where the theorem is declared, not its namespace
116
108
  * (`PhysJS.Einstein.friedmann_corollary` is in `VacuumFriedmann.lean`;
117
109
  * `PhysJS.SpringLc` is a namespace inside `OscillatorDictionary.lean`).
@@ -122,32 +114,31 @@ function physjsVersion() {
122
114
  export function physjsLeanFile(theorem) {
123
115
  const file = FILE_BY_THEOREM.get(theorem);
124
116
  if (file === undefined)
125
- throw new Error(`PhysJS theorem '${theorem}' is not a statement of the vendored manifest`);
117
+ throw new Error(`PhysJS theorem '${theorem}' is not a statement of the Lean manifest`);
126
118
  return file;
127
119
  }
128
120
  /**
129
- * Permalink to one Lean file at the pinned commit.
121
+ * Permalink to one Lean file of this repository at the release tag.
130
122
  *
131
- * PhysJS #63 stores sources at `lean/<File>.lean`. This is the only builder
132
- * of those URLs.
123
+ * Sources are `lean/<File>.lean`. This is the only builder of those URLs.
133
124
  *
134
125
  * @internal
135
126
  */
136
127
  export function physjsFileUrl(file) {
137
- return `https://github.com/danielsimonjr/PhysJS/blob/${PHYSJS_COMMIT}/lean/${file}`;
128
+ return `https://github.com/danielsimonjr/Universal-Physics-Tensor/blob/${LEAN_SOURCE_TAG}/lean/${file}`;
138
129
  }
139
- /** Permalink to the Lean file that contains `theorem` at the pinned commit. */
130
+ /** Permalink to the Lean file that declares `theorem`, at the release tag. */
140
131
  function physjsStatementUrl(theorem) {
141
132
  return physjsFileUrl(physjsLeanFile(theorem));
142
133
  }
143
134
  /** The highest id in the bridge catalog. */
144
135
  const CATALOG_MAX_ID = Math.max(...catalogEntries().map((entry) => entry.id));
145
136
  /**
146
- * True when `key` is ahead of the catalog: PhysJS proved the statement for a
137
+ * True when `key` is ahead of the catalog: `lean/` proves the statement for a
147
138
  * catalog id the catalog has not reached yet. That is an id above the
148
139
  * catalog's highest, with every id between them also a key of `keys` (the
149
140
  * manifest's), so the ahead keys are one unbroken run that starts right after
150
- * the catalog. Such an entry is vendored and compared, and it is not a seed
141
+ * the catalog. Such an entry is compiled and compared, and it is not a seed
151
142
  * and not a problem until the catalog entry exists. A missing id inside the
152
143
  * catalog's range is not ahead, nor is an id past a gap in the run (a typo
153
144
  * such as an extra digit), nor an atlas key.
@@ -181,26 +172,103 @@ export function physjsKeysAheadOfCatalog() {
181
172
  return PHYSJS_ENTRIES.filter((entry) => physjsAheadOfCatalog(entry.key)).map((entry) => entry.key);
182
173
  }
183
174
  /**
184
- * The reviewed reference for a manifest key. Throws when the key is not an
185
- * entry, so a typo cannot ship a bridge with no reference.
175
+ * The row of a manifest entry as the manifest writes it, in the shape
176
+ * {@link physjsRowHash} reads. @internal
177
+ */
178
+ export function physjsManifestRow(entry) {
179
+ return {
180
+ key: entry.key,
181
+ theorem: entry.theorem,
182
+ kind: entry.kind,
183
+ covers: entry.covers,
184
+ leanProof: entry.leanProof,
185
+ axioms: entry.axioms,
186
+ nested: physjsNestedStatements(entry).nested.map((statement) => ({
187
+ name: statement.name,
188
+ theorem: statement.theorem,
189
+ kind: statement.kind,
190
+ covers: statement.covers,
191
+ leanProof: statement.leanProof,
192
+ axioms: statement.axioms,
193
+ })),
194
+ };
195
+ }
196
+ /**
197
+ * SHA-256 of one row: `[key, theorem, kind, covers, leanProof, axioms,
198
+ * nested[]]`, each nested statement as `[name, theorem, kind, covers,
199
+ * leanProof, axioms]`. A swapped theorem or key, a changed kind, a reworded
200
+ * covers line, a proof status, an axiom, or a nested statement changes it.
201
+ * This is what `physjs-reviewed.ts` pins per key.
202
+ *
203
+ * @internal
204
+ */
205
+ export function physjsRowHash(row) {
206
+ const columns = [
207
+ row.key,
208
+ row.theorem,
209
+ row.kind,
210
+ row.covers,
211
+ row.leanProof,
212
+ [...row.axioms],
213
+ row.nested.map((n) => [n.name, n.theorem, n.kind, n.covers, n.leanProof, [...n.axioms]]),
214
+ ];
215
+ return sha256Hex(JSON.stringify(columns));
216
+ }
217
+ /**
218
+ * The fidelity a manifest key earns, derived from what checks it:
219
+ *
220
+ * - `'unreviewed'` when the key is ahead of the catalog
221
+ * ({@link physjsAheadOfCatalog}): no bridge exists to read the row against;
222
+ * - `'unreviewed'` when the compiled row's hash is not the one
223
+ * `PHYSJS_REVIEWED_ROWS` records for the key, or the key has no entry there;
224
+ * - `'sanity-lemmas'` when the row is reviewed AND the key is in
225
+ * `PHYSJS_SANITY_LEMMA_KEYS`, whose statements
226
+ * `tests/atlas/formal-sanity.test.ts` instantiates on known cases;
227
+ * - `'reviewed-manifest'` when the row is reviewed and no sanity lemma exists.
228
+ *
229
+ * A key the manifest does not name throws, like {@link physjsFormalRef}.
230
+ *
231
+ * @internal
232
+ */
233
+ export function physjsFidelity(key,
234
+ /** Defaults to the generated table. A test passes a mutated copy. */
235
+ compiledEntries = PHYSJS_ENTRIES) {
236
+ const entry = compiledEntries.find((candidate) => candidate.key === key);
237
+ if (entry === undefined)
238
+ throw new Error(`the Lean manifest has no entry for '${key}'`);
239
+ if (physjsAheadOfCatalog(key))
240
+ return 'unreviewed';
241
+ if (PHYSJS_REVIEWED_ROWS[key] !== physjsRowHash(entry))
242
+ return 'unreviewed';
243
+ return PHYSJS_SANITY_LEMMA_KEYS.includes(key) ? 'sanity-lemmas' : 'reviewed-manifest';
244
+ }
245
+ /**
246
+ * The reference for a manifest key, with its derived fidelity. Throws when
247
+ * the key is not an entry, so a typo cannot ship a bridge with no reference.
248
+ * A key ahead of the catalog, or whose row is not reviewed, is returned
249
+ * `'unreviewed'` and derives no proof tag.
186
250
  *
187
251
  * @internal
188
252
  */
189
253
  export function physjsFormalRef(key) {
190
254
  const entry = entryByKey.get(key);
191
255
  if (entry === undefined)
192
- throw new Error(`PhysJS manifest has no entry for '${key}'`);
256
+ throw new Error(`the Lean manifest has no entry for '${key}'`);
193
257
  return {
194
258
  system: 'lean4-physjs',
195
259
  statement: entry.theorem,
196
260
  version: physjsVersion(),
197
261
  axioms: entry.axioms,
198
- fidelity: 'sanity-lemmas',
262
+ fidelity: physjsFidelity(key),
199
263
  kind: entry.kind,
200
264
  url: physjsStatementUrl(entry.theorem),
201
265
  covers: `${entry.covers} — ${entry.coverage}`,
202
266
  };
203
267
  }
268
+ /** The axioms of a statement that are outside {@link PHYSJS_ALLOWED_AXIOMS}. */
269
+ function disallowedAxioms(axioms) {
270
+ return axioms.filter((axiom) => !PHYSJS_ALLOWED_AXIOMS.has(axiom));
271
+ }
204
272
  function sameAxioms(recorded, manifest) {
205
273
  return recorded.length === manifest.length && recorded.every((axiom, i) => axiom === manifest[i]);
206
274
  }
@@ -222,41 +290,45 @@ function isFormalRefKind(kind) {
222
290
  return typeof kind === 'string' && FORMAL_REF_KINDS.includes(kind);
223
291
  }
224
292
  /**
225
- * Problems in the vendored manifest against the bridges that claim to be keyed
293
+ * Problems in the Lean manifest against the bridges that claim to be keyed
226
294
  * by it. Empty means every entry resolves to a `lean4-physjs` reference whose
227
- * theorem, axioms, commit and coverage phrase are the entry's own.
295
+ * theorem, axioms, version and coverage phrase are the entry's own.
228
296
  *
229
- * A wrong commit, theorem, key or coverage phrase is a problem. A manifest
297
+ * A wrong toolchain, version, theorem, key or coverage phrase is a problem. A manifest
230
298
  * entry with no bridge is a problem. A `lean4-physjs` reference with no entry
231
299
  * is a problem: the gate does not skip that system. A nested object is kept
232
300
  * and compared; naming it as the `formalRef` is a problem. The top-level
233
301
  * theorem stays the reference. The reference's kind is the entry's
234
- * `kind`; a kind outside the formal-reference kinds is a problem. A `be-`
302
+ * `kind`; a kind outside the formal-reference kinds is a problem. An axiom
303
+ * outside {@link PHYSJS_ALLOWED_AXIOMS} on any statement is a problem. A `be-`
235
304
  * key in the unbroken run above the catalog's highest id is ahead of the
236
305
  * catalog and is not a problem (`physjsAheadOfCatalog`); any other key with
237
- * no bridge is.
306
+ * no bridge is. Every structural check (fields, kinds, coverage, proof
307
+ * status, axioms, Lean file, compiled copy) runs for every entry, ahead keys
308
+ * included; only the checks against a bridge's reference are skipped for a
309
+ * key that has no bridge yet.
238
310
  *
239
311
  * @internal
240
312
  */
241
313
  export function physjsManifestProblems(input) {
242
314
  const problems = [];
243
315
  const manifest = input.manifest;
244
- if (manifest.schema !== 'physjs-bridge-manifest/v2') {
245
- problems.push(`manifest schema is '${manifest.schema}', expected 'physjs-bridge-manifest/v2'`);
246
- }
247
- if (manifest.commit !== PHYSJS_COMMIT) {
248
- problems.push(`manifest commit is '${manifest.commit}', expected '${PHYSJS_COMMIT}'`);
316
+ if (manifest.schema !== 'upt-lean-manifest/v1') {
317
+ problems.push(`manifest schema is '${manifest.schema}', expected 'upt-lean-manifest/v1'`);
249
318
  }
250
- if (manifest.toolchain !== PHYSJS_TOOLCHAIN) {
251
- problems.push(`manifest toolchain is '${manifest.toolchain}', expected '${PHYSJS_TOOLCHAIN}'`);
319
+ if (manifest.toolchain !== LEAN_TOOLCHAIN) {
320
+ problems.push(`manifest toolchain is '${manifest.toolchain}', expected '${LEAN_TOOLCHAIN}'`);
252
321
  }
253
- if (manifest.mathlib !== PHYSJS_MATHLIB) {
254
- problems.push(`manifest mathlib is '${manifest.mathlib}', expected '${PHYSJS_MATHLIB}'`);
322
+ if (manifest.mathlib !== LEAN_MATHLIB) {
323
+ problems.push(`manifest mathlib is '${manifest.mathlib}', expected '${LEAN_MATHLIB}'`);
255
324
  }
256
- if (manifest.physlib !== PHYSJS_PHYS_LIB) {
257
- problems.push(`manifest physlib is '${manifest.physlib}', expected '${PHYSJS_PHYS_LIB}'`);
325
+ if (manifest.physlib !== LEAN_PHYSLIB) {
326
+ problems.push(`manifest physlib is '${manifest.physlib}', expected '${LEAN_PHYSLIB}'`);
258
327
  }
259
- const compiledByKey = new Map((input.compiledEntries ?? PHYSJS_ENTRIES).map((entry) => [entry.key, entry]));
328
+ const compiledEntries = input.compiledEntries ?? PHYSJS_ENTRIES;
329
+ const compiledByKey = new Map(compiledEntries.map((entry) => [entry.key, entry]));
330
+ /** Theorem → Lean file over the compiled table under test, nested statements included. */
331
+ const fileByTheorem = new Map(compiledEntries.flatMap((entry) => [entry, ...entry.nested].map((statement) => [statement.theorem, statement.file])));
260
332
  const byId = new Map(input.bridges.map((bridge) => [bridge.id, bridge]));
261
333
  const seen = new Set();
262
334
  const manifestKeys = manifest.entries.map((entry) => entry.key);
@@ -278,6 +350,9 @@ export function physjsManifestProblems(input) {
278
350
  if (!isFormalRefKind(entry.kind)) {
279
351
  problems.push(`manifest key '${entry.key}' kind '${String(entry.kind)}' is not one of ${FORMAL_REF_KINDS.join(', ')}`);
280
352
  }
353
+ if (disallowedAxioms(entry.axioms).length > 0) {
354
+ problems.push(`manifest key '${entry.key}' axioms [${entry.axioms.join(', ')}] are not a subset of [${[...PHYSJS_ALLOWED_AXIOMS].join(', ')}]`);
355
+ }
281
356
  for (const statement of nested) {
282
357
  if (!isFormalRefKind(statement.kind)) {
283
358
  problems.push(`${statement.name} kind for '${entry.key}' is '${String(statement.kind)}', not one of ${FORMAL_REF_KINDS.join(', ')}`);
@@ -288,6 +363,29 @@ export function physjsManifestProblems(input) {
288
363
  if (statement.leanProof !== 'complete') {
289
364
  problems.push(`${statement.name} leanProof for '${entry.key}' is '${statement.leanProof}', expected 'complete'`);
290
365
  }
366
+ if (disallowedAxioms(statement.axioms).length > 0) {
367
+ problems.push(`${statement.name} axioms for '${entry.key}' [${statement.axioms.join(', ')}] are not a subset of [${[...PHYSJS_ALLOWED_AXIOMS].join(', ')}]`);
368
+ }
369
+ if (!fileByTheorem.has(statement.theorem)) {
370
+ problems.push(`manifest theorem '${statement.theorem}' (${entry.key}.${statement.name}) has no Lean file in formal/lean/theorem-files.json`);
371
+ }
372
+ }
373
+ const file = fileByTheorem.get(entry.theorem);
374
+ if (file === undefined) {
375
+ problems.push(`manifest theorem '${entry.theorem}' has no Lean file in formal/lean/theorem-files.json`);
376
+ }
377
+ const compiled = compiledByKey.get(entry.key);
378
+ if (compiled === undefined) {
379
+ problems.push(`manifest key '${entry.key}' is not in the compiled entry table`);
380
+ }
381
+ else if (compiled.theorem !== entry.theorem ||
382
+ compiled.kind !== entry.kind ||
383
+ compiled.covers !== entry.covers ||
384
+ compiled.coverage !== entry.coverage ||
385
+ compiled.leanProof !== entry.leanProof ||
386
+ !sameAxioms(compiled.axioms, entry.axioms) ||
387
+ !sameNested(compiled.nested, nested)) {
388
+ problems.push(`compiled entry for '${entry.key}' disagrees with the Lean manifest`);
291
389
  }
292
390
  const bridge = byId.get(entry.key);
293
391
  if (bridge === undefined) {
@@ -317,8 +415,8 @@ export function physjsManifestProblems(input) {
317
415
  if (!ref.covers.includes(entry.covers)) {
318
416
  problems.push(`bridge '${entry.key}' covers line does not record '${entry.covers}'`);
319
417
  }
320
- if (ref.version !== physjsVersion() || !ref.version.includes(`physjs@${manifest.commit}`)) {
321
- problems.push(`bridge '${entry.key}' version '${ref.version}' does not record commit '${manifest.commit}'`);
418
+ if (ref.version !== physjsVersion()) {
419
+ problems.push(`bridge '${entry.key}' version '${ref.version}' is not '${physjsVersion()}'`);
322
420
  }
323
421
  if (ref.fidelity === 'unreviewed') {
324
422
  problems.push(`bridge '${entry.key}' formalRef is unreviewed`);
@@ -326,24 +424,9 @@ export function physjsManifestProblems(input) {
326
424
  if (ref.kind !== entry.kind) {
327
425
  problems.push(`bridge '${entry.key}' kind is '${ref.kind}', expected '${entry.kind}'`);
328
426
  }
329
- const file = FILE_BY_THEOREM.get(entry.theorem);
330
- if (file === undefined) {
331
- problems.push(`manifest theorem '${entry.theorem}' has no Lean file in formal/physjs/theorem-files.json`);
332
- }
333
- else if (ref.url !== physjsFileUrl(file)) {
427
+ if (file !== undefined && ref.url !== physjsFileUrl(file)) {
334
428
  problems.push(`bridge '${entry.key}' url is '${ref.url}', expected '${physjsFileUrl(file)}'`);
335
429
  }
336
- const compiled = compiledByKey.get(entry.key);
337
- if (compiled === undefined) {
338
- problems.push(`manifest key '${entry.key}' is not in the compiled entry table`);
339
- }
340
- else if (compiled.theorem !== entry.theorem ||
341
- compiled.kind !== entry.kind ||
342
- compiled.covers !== entry.covers ||
343
- compiled.coverage !== entry.coverage ||
344
- !sameNested(compiled.nested, nested)) {
345
- problems.push(`compiled entry for '${entry.key}' disagrees with the vendored manifest`);
346
- }
347
430
  }
348
431
  for (const bridge of input.bridges) {
349
432
  if (bridge.formalRef?.system !== 'lean4-physjs')
@@ -1 +1 @@
1
- {"version":3,"file":"physjs-ref.js","sourceRoot":"","sources":["../../src/atlas/physjs-ref.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"physjs-ref.js","sourceRoot":"","sources":["../../src/atlas/physjs-ref.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Reviewed `formalRef`s keyed by this repository's Lean manifest.\n *\n * The Lean proofs are this repository's `lean/` (they moved from PhysJS in\n * 11.0.0, with their history; the `PhysJS.*` theorem names are Lean\n * namespaces, not a dependency). The manifest file is `formal/lean/manifest.json`.\n * `src/` cannot import a file outside its root, so `physjs-entries.generated.ts`\n * is the table this module reads. `bun run physjs:table` writes that file from\n * the manifest and writes nothing else. `tests/atlas/physjs-manifest.test.ts`\n * fails when the file and that table disagree on the toolchain, a theorem, a\n * key, or the coverage phrase. CI's `lean` job builds every file under `lean/`\n * and audits its axioms; this module does not run Lean.\n *\n * Permalinks name `lean/<File>.lean` at the release tag `LEAN_SOURCE_TAG`\n * (`v` and the package version), so a published version links to the proofs\n * it shipped with. Which PhysJS pull request added which keys, and the PhysJS\n * pins before the move, are history in `NOTES.md` and `CHANGELOG.md`.\n *\n * Each statement's `kind`, nested ones included, is the manifest's own field\n * (schema `upt-lean-manifest/v1`), the kind line of the Lean file that\n * declares the theorem (`scripts/lean-index.ts --check` compares the two);\n * this module keeps no override\n * and does not parse the covers line for it. A field of a manifest entry\n * outside the base fields is a nested statement: a second theorem on the same\n * entry, named by the field, with no key. It is recorded and compared, and it\n * is not a `formalRef`. The generator reads it by its shape, so a new nested\n * name needs no edit here.\n *\n * A reference's `fidelity` is DERIVED here, never typed on a record:\n * `physjsFidelity` reads the reviewed-row table (`physjs-reviewed.ts`) and the\n * sanity-lemma key list, and a key ahead of the catalog, or whose row is not\n * in that table, is `'unreviewed'`.\n *\n * @module atlas/physjs-ref\n */\n\nimport { sha256Hex } from '../core/hash.js';\nimport type { FormalFidelity, FormalRef, FormalRefKind } from './types.js';\nimport { FORMAL_REF_KINDS } from '../relations/types.js';\nimport { catalogEntries, catalogIdNumber } from '../bridges/catalog-load.js';\nimport { PHYSJS_REVIEWED_ROWS, PHYSJS_SANITY_LEMMA_KEYS } from './physjs-reviewed.js';\nimport {\n LEAN_MATHLIB,\n LEAN_PHYSLIB,\n LEAN_SOURCE_TAG,\n LEAN_TOOLCHAIN,\n PHYSJS_ENTRIES as GENERATED_PHYSJS_ENTRIES,\n} from './physjs-entries.generated.js';\n\n/**\n * The release tag whose `lean/` tree the permalinks name.\n *\n * @internal\n */\nexport { LEAN_SOURCE_TAG } from './physjs-entries.generated.js';\n\n/**\n * Every reviewed PhysJS reference covers its statement only. A lemma about\n * `bound.delta` does not certify the regime, the horizon, or the side conditions.\n */\nconst PHYSJS_COVERAGE = 'covers its statement only';\n\n/**\n * The axioms a complete Lean 4 proof over Mathlib may rest on. `#print axioms`\n * of a proof with a `sorry` adds `sorryAx`, and Lean still exits 0 (TOOLS.md),\n * so every statement's list is held to this set. The manifest records the\n * list; CI's `lean` job audits the axioms of every declaration in `lean/`\n * against the same set, and this module does not re-measure them.\n */\nconst PHYSJS_ALLOWED_AXIOMS: ReadonlySet<string> = new Set(['propext', 'Classical.choice', 'Quot.sound']);\n\n/** One statement the manifest records: an entry's own, or a nested one. */\ninterface PhysjsStatement {\n readonly theorem: string;\n /** How the theorem relates to the equation the key names, as the manifest writes it. */\n readonly kind: string;\n readonly covers: string;\n readonly coverage: string;\n readonly leanProof: string;\n readonly axioms: readonly string[];\n}\n\n/** The fields of a manifest entry. Any other field is a nested statement. */\nconst BASE_FIELDS = new Set<string>(['key', 'bridgeId', 'theorem', 'kind', 'covers', 'coverage', 'leanProof', 'axioms', 'imports']);\n\n/** The fields of a statement, sorted. A nested field with exactly these is a statement. */\nconst STATEMENT_FIELDS = ['axioms', 'coverage', 'covers', 'kind', 'leanProof', 'theorem'] as const;\n\n/** A compiled statement: the manifest's fields and the Lean file that declares its theorem. */\ninterface PhysjsCompiledStatement extends PhysjsStatement {\n /** `<File>.lean` under `lean/`, from `formal/lean/theorem-files.json`. */\n readonly file: string;\n}\n\n/** A nested statement, named by its manifest field. No key. Not a `formalRef`. */\ninterface PhysjsNestedStatement extends PhysjsCompiledStatement {\n readonly name: string;\n readonly kind: FormalRefKind;\n}\n\n/** One compiled entry: its own statement, and every nested statement by name. */\ninterface PhysjsEntry extends PhysjsCompiledStatement {\n readonly key: string;\n readonly bridgeId: string;\n /** The manifest's kind: how the theorem relates to the equation the key names. */\n readonly kind: FormalRefKind;\n readonly imports?: string;\n readonly nested: readonly PhysjsNestedStatement[];\n}\n\n/**\n * One manifest entry as `formal/lean/manifest.json` writes it: the base fields, and each nested\n * statement under a field of its own (`planeWave`, `corollary`).\n * @internal\n */\nexport interface PhysjsManifestEntry extends PhysjsStatement {\n readonly key: string;\n readonly bridgeId: string;\n readonly kind: string;\n readonly imports?: string;\n readonly [field: string]: unknown;\n}\n\n/**\n * The nested statements of a manifest entry, in field order: every field\n * outside the base fields whose value has exactly the statement fields. A\n * field that is neither is returned in `problems`.\n * @internal\n */\nexport function physjsNestedStatements(entry: PhysjsManifestEntry): {\n readonly nested: readonly (PhysjsStatement & { readonly name: string })[];\n readonly problems: readonly string[];\n} {\n const nested: (PhysjsStatement & { readonly name: string })[] = [];\n const problems: string[] = [];\n for (const [field, value] of Object.entries(entry)) {\n if (BASE_FIELDS.has(field)) continue;\n const keys = typeof value === 'object' && value !== null && !Array.isArray(value) ? Object.keys(value).sort() : [];\n if (keys.join() === STATEMENT_FIELDS.join()) nested.push({ name: field, ...(value as PhysjsStatement) });\n else problems.push(`manifest entry '${entry.key}' has unexpected field '${field}'`);\n }\n return { nested, problems };\n}\n\n/** The Lean manifest, as this module compares it. @internal */\nexport interface PhysjsManifestFile {\n readonly schema: string;\n readonly toolchain: string;\n readonly mathlib: string;\n readonly physlib: string;\n readonly entries: readonly PhysjsManifestEntry[];\n}\n\nconst PHYSJS_ENTRIES: readonly PhysjsEntry[] = GENERATED_PHYSJS_ENTRIES;\n\nconst entryByKey = new Map(PHYSJS_ENTRIES.map((entry) => [entry.key, entry]));\n\n/** Theorem → its Lean file, for every statement of the compiled table, nested ones included. */\nconst FILE_BY_THEOREM: ReadonlyMap<string, string> = new Map(\n PHYSJS_ENTRIES.flatMap((entry) => [entry, ...entry.nested].map((statement) => [statement.theorem, statement.file] as const)),\n);\n\n/**\n * Theorem name on the compiled manifest copy for `key`.\n *\n * This reads the compiled table. It does not build a formal reference\n * and it does not derive an evidence tag.\n *\n * @internal\n */\nexport function physjsTheorem(key: string): string | undefined {\n return entryByKey.get(key)?.theorem;\n}\n\n/** `formalRef.version`: the release tag of `lean/` and the toolchain it builds with. */\nfunction physjsVersion(): string {\n return `upt-lean@${LEAN_SOURCE_TAG} ${LEAN_TOOLCHAIN} mathlib:${LEAN_MATHLIB} physlib@${LEAN_PHYSLIB}`;\n}\n\n/**\n * Lean file name under `lean/` that declares `theorem`.\n *\n * Read from the compiled table, which copies `formal/lean/theorem-files.json`:\n * the file is where the theorem is declared, not its namespace\n * (`PhysJS.Einstein.friedmann_corollary` is in `VacuumFriedmann.lean`;\n * `PhysJS.SpringLc` is a namespace inside `OscillatorDictionary.lean`).\n * Throws for a theorem the manifest does not name.\n *\n * @internal\n */\nexport function physjsLeanFile(theorem: string): string {\n const file = FILE_BY_THEOREM.get(theorem);\n if (file === undefined) throw new Error(`PhysJS theorem '${theorem}' is not a statement of the Lean manifest`);\n return file;\n}\n\n/**\n * Permalink to one Lean file of this repository at the release tag.\n *\n * Sources are `lean/<File>.lean`. This is the only builder of those URLs.\n *\n * @internal\n */\nexport function physjsFileUrl(file: string): string {\n return `https://github.com/danielsimonjr/Universal-Physics-Tensor/blob/${LEAN_SOURCE_TAG}/lean/${file}`;\n}\n\n/** Permalink to the Lean file that declares `theorem`, at the release tag. */\nfunction physjsStatementUrl(theorem: string): string {\n return physjsFileUrl(physjsLeanFile(theorem));\n}\n\n/** The highest id in the bridge catalog. */\nconst CATALOG_MAX_ID = Math.max(...catalogEntries().map((entry) => entry.id));\n\n/**\n * True when `key` is ahead of the catalog: `lean/` proves the statement for a\n * catalog id the catalog has not reached yet. That is an id above the\n * catalog's highest, with every id between them also a key of `keys` (the\n * manifest's), so the ahead keys are one unbroken run that starts right after\n * the catalog. Such an entry is compiled and compared, and it is not a seed\n * and not a problem until the catalog entry exists. A missing id inside the\n * catalog's range is not ahead, nor is an id past a gap in the run (a typo\n * such as an extra digit), nor an atlas key.\n *\n * @internal\n */\nexport function physjsAheadOfCatalog(\n key: string,\n keys: readonly string[] = PHYSJS_ENTRIES.map((entry) => entry.key),\n): boolean {\n const id = catalogIdNumber(key);\n if (id === undefined || id <= CATALOG_MAX_ID) return false;\n const ids = new Set(keys.map(catalogIdNumber));\n for (let n = CATALOG_MAX_ID + 1; n < id; n++) if (!ids.has(n)) return false;\n return true;\n}\n\n/**\n * Manifest keys of kind `bridge`, the theorem stating the equation its key\n * names, that resolve to a bridge: every such atlas key, and every such\n * catalog key whose catalog entry exists. The kind is the manifest's own\n * field. A caller-supplied overlay entry is read the same way. The return\n * value is not stored on a bridge.\n *\n * @internal\n */\nexport function bridgeSeedKeys(\n entries: readonly { readonly key: string; readonly kind: FormalRefKind }[] = PHYSJS_ENTRIES,\n): readonly string[] {\n return entries.filter((entry) => entry.kind === 'bridge' && !physjsAheadOfCatalog(entry.key)).map((entry) => entry.key);\n}\n\n/** Every manifest key ahead of the catalog, in manifest order. @internal */\nexport function physjsKeysAheadOfCatalog(): readonly string[] {\n return PHYSJS_ENTRIES.filter((entry) => physjsAheadOfCatalog(entry.key)).map((entry) => entry.key);\n}\n\n/** The fields of one manifest row that a review reads, nested statements included. @internal */\nexport interface PhysjsReviewedRow {\n readonly key: string;\n readonly theorem: string;\n readonly kind: string;\n readonly covers: string;\n readonly leanProof: string;\n readonly axioms: readonly string[];\n readonly nested: readonly {\n readonly name: string;\n readonly theorem: string;\n readonly kind: string;\n readonly covers: string;\n readonly leanProof: string;\n readonly axioms: readonly string[];\n }[];\n}\n\n/**\n * The row of a manifest entry as the manifest writes it, in the shape\n * {@link physjsRowHash} reads. @internal\n */\nexport function physjsManifestRow(entry: PhysjsManifestEntry): PhysjsReviewedRow {\n return {\n key: entry.key,\n theorem: entry.theorem,\n kind: entry.kind,\n covers: entry.covers,\n leanProof: entry.leanProof,\n axioms: entry.axioms,\n nested: physjsNestedStatements(entry).nested.map((statement) => ({\n name: statement.name,\n theorem: statement.theorem,\n kind: statement.kind,\n covers: statement.covers,\n leanProof: statement.leanProof,\n axioms: statement.axioms,\n })),\n };\n}\n\n/**\n * SHA-256 of one row: `[key, theorem, kind, covers, leanProof, axioms,\n * nested[]]`, each nested statement as `[name, theorem, kind, covers,\n * leanProof, axioms]`. A swapped theorem or key, a changed kind, a reworded\n * covers line, a proof status, an axiom, or a nested statement changes it.\n * This is what `physjs-reviewed.ts` pins per key.\n *\n * @internal\n */\nexport function physjsRowHash(row: PhysjsReviewedRow): string {\n const columns = [\n row.key,\n row.theorem,\n row.kind,\n row.covers,\n row.leanProof,\n [...row.axioms],\n row.nested.map((n) => [n.name, n.theorem, n.kind, n.covers, n.leanProof, [...n.axioms]]),\n ];\n return sha256Hex(JSON.stringify(columns));\n}\n\n/**\n * The fidelity a manifest key earns, derived from what checks it:\n *\n * - `'unreviewed'` when the key is ahead of the catalog\n * ({@link physjsAheadOfCatalog}): no bridge exists to read the row against;\n * - `'unreviewed'` when the compiled row's hash is not the one\n * `PHYSJS_REVIEWED_ROWS` records for the key, or the key has no entry there;\n * - `'sanity-lemmas'` when the row is reviewed AND the key is in\n * `PHYSJS_SANITY_LEMMA_KEYS`, whose statements\n * `tests/atlas/formal-sanity.test.ts` instantiates on known cases;\n * - `'reviewed-manifest'` when the row is reviewed and no sanity lemma exists.\n *\n * A key the manifest does not name throws, like {@link physjsFormalRef}.\n *\n * @internal\n */\nexport function physjsFidelity(\n key: string,\n /** Defaults to the generated table. A test passes a mutated copy. */\n compiledEntries: readonly PhysjsEntry[] = PHYSJS_ENTRIES,\n): FormalFidelity {\n const entry = compiledEntries.find((candidate) => candidate.key === key);\n if (entry === undefined) throw new Error(`the Lean manifest has no entry for '${key}'`);\n if (physjsAheadOfCatalog(key)) return 'unreviewed';\n if (PHYSJS_REVIEWED_ROWS[key] !== physjsRowHash(entry)) return 'unreviewed';\n return PHYSJS_SANITY_LEMMA_KEYS.includes(key) ? 'sanity-lemmas' : 'reviewed-manifest';\n}\n\n/**\n * The reference for a manifest key, with its derived fidelity. Throws when\n * the key is not an entry, so a typo cannot ship a bridge with no reference.\n * A key ahead of the catalog, or whose row is not reviewed, is returned\n * `'unreviewed'` and derives no proof tag.\n *\n * @internal\n */\nexport function physjsFormalRef(key: string): FormalRef {\n const entry = entryByKey.get(key);\n if (entry === undefined) throw new Error(`the Lean manifest has no entry for '${key}'`);\n return {\n system: 'lean4-physjs',\n statement: entry.theorem,\n version: physjsVersion(),\n axioms: entry.axioms,\n fidelity: physjsFidelity(key),\n kind: entry.kind,\n url: physjsStatementUrl(entry.theorem),\n covers: `${entry.covers} — ${entry.coverage}`,\n };\n}\n\n/** The axioms of a statement that are outside {@link PHYSJS_ALLOWED_AXIOMS}. */\nfunction disallowedAxioms(axioms: readonly string[]): readonly string[] {\n return axioms.filter((axiom) => !PHYSJS_ALLOWED_AXIOMS.has(axiom));\n}\n\nfunction sameAxioms(recorded: readonly string[], manifest: readonly string[]): boolean {\n return recorded.length === manifest.length && recorded.every((axiom, i) => axiom === manifest[i]);\n}\n\nfunction sameStatement(compiled: PhysjsStatement, manifest: PhysjsStatement): boolean {\n return (\n compiled.theorem === manifest.theorem &&\n compiled.kind === manifest.kind &&\n compiled.covers === manifest.covers &&\n compiled.coverage === manifest.coverage &&\n compiled.leanProof === manifest.leanProof &&\n sameAxioms(compiled.axioms, manifest.axioms)\n );\n}\n\n/** The compiled nested statements are the manifest's: the same names, in order, each the same statement. */\nfunction sameNested(\n compiled: readonly PhysjsNestedStatement[],\n manifest: readonly (PhysjsStatement & { readonly name: string })[],\n): boolean {\n return (\n compiled.length === manifest.length &&\n compiled.every((statement, i) => statement.name === manifest[i]!.name && sameStatement(statement, manifest[i]!))\n );\n}\n\n/** The kind of a manifest entry is one of the formal-reference kinds. */\nfunction isFormalRefKind(kind: unknown): kind is FormalRefKind {\n return typeof kind === 'string' && (FORMAL_REF_KINDS as readonly string[]).includes(kind);\n}\n\n/**\n * Problems in the Lean manifest against the bridges that claim to be keyed\n * by it. Empty means every entry resolves to a `lean4-physjs` reference whose\n * theorem, axioms, version and coverage phrase are the entry's own.\n *\n * A wrong toolchain, version, theorem, key or coverage phrase is a problem. A manifest\n * entry with no bridge is a problem. A `lean4-physjs` reference with no entry\n * is a problem: the gate does not skip that system. A nested object is kept\n * and compared; naming it as the `formalRef` is a problem. The top-level\n * theorem stays the reference. The reference's kind is the entry's\n * `kind`; a kind outside the formal-reference kinds is a problem. An axiom\n * outside {@link PHYSJS_ALLOWED_AXIOMS} on any statement is a problem. A `be-`\n * key in the unbroken run above the catalog's highest id is ahead of the\n * catalog and is not a problem (`physjsAheadOfCatalog`); any other key with\n * no bridge is. Every structural check (fields, kinds, coverage, proof\n * status, axioms, Lean file, compiled copy) runs for every entry, ahead keys\n * included; only the checks against a bridge's reference are skipped for a\n * key that has no bridge yet.\n *\n * @internal\n */\nexport function physjsManifestProblems(input: {\n readonly manifest: PhysjsManifestFile;\n readonly bridges: readonly { readonly id: string; readonly formalRef?: FormalRef }[];\n /** Defaults to the generated table. A test passes a mutated copy. */\n readonly compiledEntries?: readonly PhysjsEntry[];\n}): string[] {\n const problems: string[] = [];\n const manifest = input.manifest;\n if (manifest.schema !== 'upt-lean-manifest/v1') {\n problems.push(`manifest schema is '${manifest.schema}', expected 'upt-lean-manifest/v1'`);\n }\n if (manifest.toolchain !== LEAN_TOOLCHAIN) {\n problems.push(`manifest toolchain is '${manifest.toolchain}', expected '${LEAN_TOOLCHAIN}'`);\n }\n if (manifest.mathlib !== LEAN_MATHLIB) {\n problems.push(`manifest mathlib is '${manifest.mathlib}', expected '${LEAN_MATHLIB}'`);\n }\n if (manifest.physlib !== LEAN_PHYSLIB) {\n problems.push(`manifest physlib is '${manifest.physlib}', expected '${LEAN_PHYSLIB}'`);\n }\n\n const compiledEntries = input.compiledEntries ?? PHYSJS_ENTRIES;\n const compiledByKey = new Map(compiledEntries.map((entry) => [entry.key, entry]));\n /** Theorem → Lean file over the compiled table under test, nested statements included. */\n const fileByTheorem = new Map(\n compiledEntries.flatMap((entry) => [entry, ...entry.nested].map((statement) => [statement.theorem, statement.file] as const)),\n );\n const byId = new Map(input.bridges.map((bridge) => [bridge.id, bridge]));\n const seen = new Set<string>();\n const manifestKeys = manifest.entries.map((entry) => entry.key);\n for (const entry of manifest.entries) {\n if (seen.has(entry.key)) problems.push(`manifest key '${entry.key}' is duplicated`);\n seen.add(entry.key);\n const { nested, problems: fieldProblems } = physjsNestedStatements(entry);\n problems.push(...fieldProblems);\n if (entry.key !== entry.bridgeId) {\n problems.push(`manifest key '${entry.key}' does not equal bridgeId '${entry.bridgeId}'`);\n }\n if (entry.coverage !== PHYSJS_COVERAGE) {\n problems.push(\n `coverage phrase for '${entry.key}' is '${entry.coverage}', expected '${PHYSJS_COVERAGE}'`,\n );\n }\n if (entry.leanProof !== 'complete') {\n problems.push(`leanProof for '${entry.key}' is '${entry.leanProof}', expected 'complete'`);\n }\n if (!isFormalRefKind(entry.kind)) {\n problems.push(`manifest key '${entry.key}' kind '${String(entry.kind)}' is not one of ${FORMAL_REF_KINDS.join(', ')}`);\n }\n if (disallowedAxioms(entry.axioms).length > 0) {\n problems.push(\n `manifest key '${entry.key}' axioms [${entry.axioms.join(', ')}] are not a subset of [${[...PHYSJS_ALLOWED_AXIOMS].join(', ')}]`,\n );\n }\n for (const statement of nested) {\n if (!isFormalRefKind(statement.kind)) {\n problems.push(\n `${statement.name} kind for '${entry.key}' is '${String(statement.kind)}', not one of ${FORMAL_REF_KINDS.join(', ')}`,\n );\n }\n if (statement.coverage !== PHYSJS_COVERAGE) {\n problems.push(\n `${statement.name} coverage phrase for '${entry.key}' is '${statement.coverage}', expected '${PHYSJS_COVERAGE}'`,\n );\n }\n if (statement.leanProof !== 'complete') {\n problems.push(`${statement.name} leanProof for '${entry.key}' is '${statement.leanProof}', expected 'complete'`);\n }\n if (disallowedAxioms(statement.axioms).length > 0) {\n problems.push(\n `${statement.name} axioms for '${entry.key}' [${statement.axioms.join(', ')}] are not a subset of [${[...PHYSJS_ALLOWED_AXIOMS].join(', ')}]`,\n );\n }\n if (!fileByTheorem.has(statement.theorem)) {\n problems.push(`manifest theorem '${statement.theorem}' (${entry.key}.${statement.name}) has no Lean file in formal/lean/theorem-files.json`);\n }\n }\n const file = fileByTheorem.get(entry.theorem);\n if (file === undefined) {\n problems.push(`manifest theorem '${entry.theorem}' has no Lean file in formal/lean/theorem-files.json`);\n }\n const compiled = compiledByKey.get(entry.key);\n if (compiled === undefined) {\n problems.push(`manifest key '${entry.key}' is not in the compiled entry table`);\n } else if (\n compiled.theorem !== entry.theorem ||\n compiled.kind !== entry.kind ||\n compiled.covers !== entry.covers ||\n compiled.coverage !== entry.coverage ||\n compiled.leanProof !== entry.leanProof ||\n !sameAxioms(compiled.axioms, entry.axioms) ||\n !sameNested(compiled.nested, nested)\n ) {\n problems.push(`compiled entry for '${entry.key}' disagrees with the Lean manifest`);\n }\n const bridge = byId.get(entry.key);\n if (bridge === undefined) {\n if (!physjsAheadOfCatalog(entry.key, manifestKeys)) problems.push(`manifest key '${entry.key}' does not resolve to a bridge`);\n continue;\n }\n const ref = bridge.formalRef;\n if (ref === undefined || ref.system !== 'lean4-physjs') {\n problems.push(\n `bridge '${entry.key}' has no lean4-physjs formalRef (system '${ref?.system ?? 'none'}')`,\n );\n continue;\n }\n for (const statement of nested) {\n if (ref.statement === statement.theorem) {\n problems.push(\n `bridge '${entry.key}' formalRef names the nested ${statement.name} theorem '${statement.theorem}'; the top-level theorem stays the reference`,\n );\n }\n }\n if (ref.statement !== entry.theorem) {\n problems.push(`bridge '${entry.key}' theorem is '${ref.statement}', manifest theorem is '${entry.theorem}'`);\n }\n if (!sameAxioms(ref.axioms, entry.axioms)) {\n problems.push(\n `bridge '${entry.key}' axioms [${ref.axioms.join(', ')}] differ from the manifest [${entry.axioms.join(', ')}]`,\n );\n }\n if (!ref.covers.includes(PHYSJS_COVERAGE)) {\n problems.push(`bridge '${entry.key}' covers line does not say '${PHYSJS_COVERAGE}'`);\n }\n if (!ref.covers.includes(entry.covers)) {\n problems.push(`bridge '${entry.key}' covers line does not record '${entry.covers}'`);\n }\n if (ref.version !== physjsVersion()) {\n problems.push(`bridge '${entry.key}' version '${ref.version}' is not '${physjsVersion()}'`);\n }\n if (ref.fidelity === 'unreviewed') {\n problems.push(`bridge '${entry.key}' formalRef is unreviewed`);\n }\n if (ref.kind !== entry.kind) {\n problems.push(`bridge '${entry.key}' kind is '${ref.kind}', expected '${entry.kind}'`);\n }\n if (file !== undefined && ref.url !== physjsFileUrl(file)) {\n problems.push(`bridge '${entry.key}' url is '${ref.url}', expected '${physjsFileUrl(file)}'`);\n }\n }\n\n for (const bridge of input.bridges) {\n if (bridge.formalRef?.system !== 'lean4-physjs') continue;\n if (!seen.has(bridge.id)) {\n problems.push(`lean4-physjs formalRef on '${bridge.id}' has no manifest entry`);\n }\n }\n return problems;\n}\n"]}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * The reviewed Lean manifest rows (`formal/lean/manifest.json`), pinned per key.
3
+ *
4
+ * Each value is `physjsRowHash` of the row as the manifest writes it:
5
+ * `[key, theorem, kind, covers, leanProof, axioms, nested statements]`. A key
6
+ * is listed only after its row was read against the bridge it keys (the
7
+ * procedure is WORKFLOWS.md, "Adding or changing a Lean formalRef"). A key
8
+ * that is ahead of the catalog has no bridge to read it against and is not
9
+ * listed; `physjsFidelity` returns `'unreviewed'` for it.
10
+ *
11
+ * `tests/atlas/physjs-manifest.test.ts` fails, and prints the line to paste
12
+ * here, when a manifest row that resolves to a bridge is missing or has
13
+ * changed since its review, and when a listed key no longer resolves to a
14
+ * bridge. The sentence that the review was one SHA-256 over every row in
15
+ * that test file is the record from before this table.
16
+ *
17
+ * @module atlas/physjs-reviewed
18
+ */
19
+ /**
20
+ * Keys whose statements `tests/atlas/formal-sanity.test.ts` instantiates on
21
+ * known cases. A reviewed row with its key here derives
22
+ * `fidelity: 'sanity-lemmas'`; every other reviewed row derives
23
+ * `'reviewed-manifest'`. That test fails when a key listed here has no
24
+ * lemma in it, and when a lemma there names a key missing here.
25
+ *
26
+ * @internal
27
+ */
28
+ export declare const PHYSJS_SANITY_LEMMA_KEYS: readonly string[];
29
+ /** Manifest key → `physjsRowHash` of its reviewed row. @internal */
30
+ export declare const PHYSJS_REVIEWED_ROWS: Readonly<Record<string, string>>;
31
+ //# sourceMappingURL=physjs-reviewed.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"physjs-reviewed.d.ts","sourceRoot":"","sources":["../../src/atlas/physjs-reviewed.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAWrD,CAAC;AAEF,oEAAoE;AACpE,eAAO,MAAM,oBAAoB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAwJjE,CAAC"}