universal-physics-tensor 10.0.0 → 12.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 (835) hide show
  1. package/README.md +39 -36
  2. package/bin/upt.mjs +13 -1
  3. package/data/applied-cases.json +1892 -0
  4. package/data/applied-cases.schema.json +194 -0
  5. package/data/atlas/atlas.json +25 -25
  6. package/data/atlas/atlas.jsonld +1 -1
  7. package/data/atlas/diffusion.json +6 -6
  8. package/data/atlas/oscillators.json +7 -7
  9. package/data/atlas/waves.json +14 -14
  10. package/data/atlas/witness-results.json +11 -11
  11. package/data/bridge-catalog.json +389 -230
  12. package/data/bridge-catalog.schema.json +45 -7
  13. package/data/units.json +6 -25
  14. package/dist/atlas/applicability.d.ts.map +1 -1
  15. package/dist/atlas/applicability.js +21 -15
  16. package/dist/atlas/applicability.js.map +1 -1
  17. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +9 -1
  18. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  19. package/dist/atlas/benchmark/hybrid-retrieval.js +15 -13
  20. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  21. package/dist/atlas/benchmark/loader.js +2 -2
  22. package/dist/atlas/benchmark/loader.js.map +1 -1
  23. package/dist/atlas/benchmark/stats.d.ts +2 -2
  24. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  25. package/dist/atlas/benchmark/stats.js +9 -15
  26. package/dist/atlas/benchmark/stats.js.map +1 -1
  27. package/dist/atlas/catalog-formal-ref.d.ts +26 -3
  28. package/dist/atlas/catalog-formal-ref.d.ts.map +1 -1
  29. package/dist/atlas/catalog-formal-ref.js +52 -5
  30. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  31. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  32. package/dist/atlas/chain-pipeline.js +7 -8
  33. package/dist/atlas/chain-pipeline.js.map +1 -1
  34. package/dist/atlas/diffusion/bridges-closure.d.ts +0 -4
  35. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  36. package/dist/atlas/diffusion/bridges-closure.js +8 -12
  37. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  38. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  39. package/dist/atlas/diffusion/bridges.js +27 -39
  40. package/dist/atlas/diffusion/bridges.js.map +1 -1
  41. package/dist/atlas/diffusion/dimensions.d.ts +6 -14
  42. package/dist/atlas/diffusion/dimensions.d.ts.map +1 -1
  43. package/dist/atlas/diffusion/dimensions.js +8 -16
  44. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  45. package/dist/atlas/diffusion/models.d.ts +3 -3
  46. package/dist/atlas/diffusion/models.d.ts.map +1 -1
  47. package/dist/atlas/diffusion/models.js +5 -10
  48. package/dist/atlas/diffusion/models.js.map +1 -1
  49. package/dist/atlas/diffusion/numerics.d.ts +16 -4
  50. package/dist/atlas/diffusion/numerics.d.ts.map +1 -1
  51. package/dist/atlas/diffusion/numerics.js +38 -24
  52. package/dist/atlas/diffusion/numerics.js.map +1 -1
  53. package/dist/atlas/link-prediction.d.ts +106 -3
  54. package/dist/atlas/link-prediction.d.ts.map +1 -1
  55. package/dist/atlas/link-prediction.js +212 -66
  56. package/dist/atlas/link-prediction.js.map +1 -1
  57. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  58. package/dist/atlas/oscillators/bridges-coarse.js +7 -11
  59. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  60. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  61. package/dist/atlas/oscillators/bridges-exact.js +6 -7
  62. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  63. package/dist/atlas/oscillators/bridges-limits.d.ts +3 -16
  64. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  65. package/dist/atlas/oscillators/bridges-limits.js +23 -34
  66. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  67. package/dist/atlas/oscillators/dimensions.d.ts +9 -21
  68. package/dist/atlas/oscillators/dimensions.d.ts.map +1 -1
  69. package/dist/atlas/oscillators/dimensions.js +9 -21
  70. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  71. package/dist/atlas/oscillators/limit-witnesses.d.ts +2 -2
  72. package/dist/atlas/oscillators/limit-witnesses.d.ts.map +1 -1
  73. package/dist/atlas/oscillators/limit-witnesses.js +17 -15
  74. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  75. package/dist/atlas/oscillators/models.d.ts.map +1 -1
  76. package/dist/atlas/oscillators/models.js +2 -6
  77. package/dist/atlas/oscillators/models.js.map +1 -1
  78. package/dist/atlas/oscillators/pendulum-motion.d.ts +29 -6
  79. package/dist/atlas/oscillators/pendulum-motion.d.ts.map +1 -1
  80. package/dist/atlas/oscillators/pendulum-motion.js +60 -40
  81. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  82. package/dist/atlas/oscillators/phase-translation.d.ts +0 -11
  83. package/dist/atlas/oscillators/phase-translation.d.ts.map +1 -1
  84. package/dist/atlas/oscillators/phase-translation.js +3 -4
  85. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  86. package/dist/atlas/oscillators/position-translation.d.ts +68 -7
  87. package/dist/atlas/oscillators/position-translation.d.ts.map +1 -1
  88. package/dist/atlas/oscillators/position-translation.js +123 -12
  89. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  90. package/dist/atlas/oscillators/rejections.d.ts +0 -2
  91. package/dist/atlas/oscillators/rejections.d.ts.map +1 -1
  92. package/dist/atlas/oscillators/rejections.js +0 -7
  93. package/dist/atlas/oscillators/rejections.js.map +1 -1
  94. package/dist/atlas/physjs-entries.generated.d.ts +35 -25
  95. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  96. package/dist/atlas/physjs-entries.generated.js +37 -25
  97. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  98. package/dist/atlas/physjs-ref.d.ts +34 -31
  99. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  100. package/dist/atlas/physjs-ref.js +55 -53
  101. package/dist/atlas/physjs-ref.js.map +1 -1
  102. package/dist/atlas/physjs-reviewed.d.ts +1 -1
  103. package/dist/atlas/physjs-reviewed.js +15 -15
  104. package/dist/atlas/physjs-reviewed.js.map +1 -1
  105. package/dist/atlas/poster/statements.d.ts +0 -19
  106. package/dist/atlas/poster/statements.d.ts.map +1 -1
  107. package/dist/atlas/poster/statements.js +1 -1
  108. package/dist/atlas/poster/statements.js.map +1 -1
  109. package/dist/atlas/proof-target.d.ts +1 -1
  110. package/dist/atlas/proof-target.js +1 -1
  111. package/dist/atlas/proof-target.js.map +1 -1
  112. package/dist/atlas/regime.d.ts +1 -1
  113. package/dist/atlas/regime.d.ts.map +1 -1
  114. package/dist/atlas/regime.js +1 -1
  115. package/dist/atlas/regime.js.map +1 -1
  116. package/dist/atlas/text-overlap.d.ts +23 -0
  117. package/dist/atlas/text-overlap.d.ts.map +1 -0
  118. package/dist/atlas/text-overlap.js +41 -0
  119. package/dist/atlas/text-overlap.js.map +1 -0
  120. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  121. package/dist/atlas/waves/bridges-closure.js +2 -6
  122. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  123. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  124. package/dist/atlas/waves/bridges.js +32 -48
  125. package/dist/atlas/waves/bridges.js.map +1 -1
  126. package/dist/atlas/waves/models.d.ts +5 -6
  127. package/dist/atlas/waves/models.d.ts.map +1 -1
  128. package/dist/atlas/waves/models.js +7 -13
  129. package/dist/atlas/waves/models.js.map +1 -1
  130. package/dist/atlas/waves/numerics.d.ts.map +1 -1
  131. package/dist/atlas/waves/numerics.js +10 -3
  132. package/dist/atlas/waves/numerics.js.map +1 -1
  133. package/dist/atlas/witness-numeric.d.ts +30 -0
  134. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  135. package/dist/atlas/witness-numeric.js +53 -0
  136. package/dist/atlas/witness-numeric.js.map +1 -1
  137. package/dist/atlas/witness-specs.d.ts.map +1 -1
  138. package/dist/atlas/witness-specs.js +19 -0
  139. package/dist/atlas/witness-specs.js.map +1 -1
  140. package/dist/atlas/witness-symbolic.d.ts +75 -3
  141. package/dist/atlas/witness-symbolic.d.ts.map +1 -1
  142. package/dist/atlas/witness-symbolic.js +116 -10
  143. package/dist/atlas/witness-symbolic.js.map +1 -1
  144. package/dist/bridges/catalog-load.d.ts.map +1 -1
  145. package/dist/bridges/catalog-load.js +13 -8
  146. package/dist/bridges/catalog-load.js.map +1 -1
  147. package/dist/bridges/catalog-types.d.ts +26 -2
  148. package/dist/bridges/catalog-types.d.ts.map +1 -1
  149. package/dist/bridges/catalog-types.js +11 -1
  150. package/dist/bridges/catalog-types.js.map +1 -1
  151. package/dist/bridges/evaluation-errors.d.ts +31 -1
  152. package/dist/bridges/evaluation-errors.d.ts.map +1 -1
  153. package/dist/bridges/evaluation-errors.js +20 -2
  154. package/dist/bridges/evaluation-errors.js.map +1 -1
  155. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  156. package/dist/bridges/evaluator-inputs.js +7 -5
  157. package/dist/bridges/evaluator-inputs.js.map +1 -1
  158. package/dist/bridges/evaluators.d.ts.map +1 -1
  159. package/dist/bridges/evaluators.js +27 -12
  160. package/dist/bridges/evaluators.js.map +1 -1
  161. package/dist/bridges/expr-parse.d.ts +11 -0
  162. package/dist/bridges/expr-parse.d.ts.map +1 -1
  163. package/dist/bridges/expr-parse.js +14 -5
  164. package/dist/bridges/expr-parse.js.map +1 -1
  165. package/dist/bridges/holds.d.ts +35 -3
  166. package/dist/bridges/holds.d.ts.map +1 -1
  167. package/dist/bridges/holds.js +117 -23
  168. package/dist/bridges/holds.js.map +1 -1
  169. package/dist/bridges/notices.d.ts.map +1 -1
  170. package/dist/bridges/notices.js +5 -5
  171. package/dist/bridges/notices.js.map +1 -1
  172. package/dist/bridges/relation-eval.d.ts +4 -4
  173. package/dist/bridges/relation-eval.d.ts.map +1 -1
  174. package/dist/bridges/relation-eval.js +15 -16
  175. package/dist/bridges/relation-eval.js.map +1 -1
  176. package/dist/bridges/sensitivity.d.ts.map +1 -1
  177. package/dist/bridges/sensitivity.js +3 -3
  178. package/dist/bridges/sensitivity.js.map +1 -1
  179. package/dist/bridges/validity.d.ts +33 -0
  180. package/dist/bridges/validity.d.ts.map +1 -0
  181. package/dist/bridges/validity.js +67 -0
  182. package/dist/bridges/validity.js.map +1 -0
  183. package/dist/canonical/entries/atomic.js +1 -3
  184. package/dist/canonical/entries/atomic.js.map +1 -1
  185. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  186. package/dist/canonical/entries/condensed-matter.js +4 -5
  187. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  188. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  189. package/dist/canonical/entries/dimensional-classics.js +3 -4
  190. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  191. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  192. package/dist/canonical/entries/electromagnetism.js +4 -10
  193. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  194. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  195. package/dist/canonical/entries/fluids-waves.js +3 -7
  196. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  197. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  198. package/dist/canonical/entries/mechanics.js +4 -6
  199. package/dist/canonical/entries/mechanics.js.map +1 -1
  200. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  201. package/dist/canonical/entries/nonmonomial.js +9 -17
  202. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  203. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  204. package/dist/canonical/entries/relativity.js +6 -6
  205. package/dist/canonical/entries/relativity.js.map +1 -1
  206. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  207. package/dist/canonical/entries/thermo-nuclear-cosmo.js +6 -10
  208. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  209. package/dist/canonical/fixed-points.d.ts +94 -0
  210. package/dist/canonical/fixed-points.d.ts.map +1 -0
  211. package/dist/canonical/fixed-points.js +81 -0
  212. package/dist/canonical/fixed-points.js.map +1 -0
  213. package/dist/canonical/linkage.d.ts.map +1 -1
  214. package/dist/canonical/linkage.js +25 -44
  215. package/dist/canonical/linkage.js.map +1 -1
  216. package/dist/canonical/normal-form.d.ts.map +1 -1
  217. package/dist/canonical/normal-form.js +5 -11
  218. package/dist/canonical/normal-form.js.map +1 -1
  219. package/dist/canonical/structural.d.ts +21 -21
  220. package/dist/canonical/structural.d.ts.map +1 -1
  221. package/dist/canonical/structural.js +40 -19
  222. package/dist/canonical/structural.js.map +1 -1
  223. package/dist/cases/catalog-checks.d.ts +10 -0
  224. package/dist/cases/catalog-checks.d.ts.map +1 -0
  225. package/dist/cases/catalog-checks.js +241 -0
  226. package/dist/cases/catalog-checks.js.map +1 -0
  227. package/dist/cases/catalog.d.ts +83 -0
  228. package/dist/cases/catalog.d.ts.map +1 -0
  229. package/dist/cases/catalog.js +118 -0
  230. package/dist/cases/catalog.js.map +1 -0
  231. package/dist/cases/engine.d.ts +13 -0
  232. package/dist/cases/engine.d.ts.map +1 -0
  233. package/dist/cases/engine.js +179 -0
  234. package/dist/cases/engine.js.map +1 -0
  235. package/dist/cases/index.d.ts.map +1 -1
  236. package/dist/cases/index.js +5 -7
  237. package/dist/cases/index.js.map +1 -1
  238. package/dist/cases/methods.d.ts +215 -0
  239. package/dist/cases/methods.d.ts.map +1 -0
  240. package/dist/cases/methods.js +743 -0
  241. package/dist/cases/methods.js.map +1 -0
  242. package/dist/cases/quadrature.d.ts +7 -9
  243. package/dist/cases/quadrature.d.ts.map +1 -1
  244. package/dist/cases/quadrature.js +28 -32
  245. package/dist/cases/quadrature.js.map +1 -1
  246. package/dist/cases/types.d.ts +12 -0
  247. package/dist/cases/types.d.ts.map +1 -1
  248. package/dist/cases/types.js.map +1 -1
  249. package/dist/cli/args.d.ts +25 -1
  250. package/dist/cli/args.d.ts.map +1 -1
  251. package/dist/cli/args.js +30 -8
  252. package/dist/cli/args.js.map +1 -1
  253. package/dist/cli/bindings.d.ts.map +1 -1
  254. package/dist/cli/bindings.js +5 -4
  255. package/dist/cli/bindings.js.map +1 -1
  256. package/dist/cli/command.d.ts +11 -1
  257. package/dist/cli/command.d.ts.map +1 -1
  258. package/dist/cli/command.js.map +1 -1
  259. package/dist/cli/commands/_atlas-map.d.ts +0 -9
  260. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  261. package/dist/cli/commands/_atlas-map.js +8 -18
  262. package/dist/cli/commands/_atlas-map.js.map +1 -1
  263. package/dist/cli/commands/_atlas-route.d.ts.map +1 -1
  264. package/dist/cli/commands/_atlas-route.js +6 -2
  265. package/dist/cli/commands/_atlas-route.js.map +1 -1
  266. package/dist/cli/commands/_discovery-opts.d.ts +1 -0
  267. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  268. package/dist/cli/commands/_discovery-opts.js +9 -9
  269. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  270. package/dist/cli/commands/atlas.d.ts.map +1 -1
  271. package/dist/cli/commands/atlas.js +8 -5
  272. package/dist/cli/commands/atlas.js.map +1 -1
  273. package/dist/cli/commands/audit.d.ts.map +1 -1
  274. package/dist/cli/commands/audit.js +8 -1
  275. package/dist/cli/commands/audit.js.map +1 -1
  276. package/dist/cli/commands/axes.d.ts.map +1 -1
  277. package/dist/cli/commands/axes.js +20 -1
  278. package/dist/cli/commands/axes.js.map +1 -1
  279. package/dist/cli/commands/confront.d.ts.map +1 -1
  280. package/dist/cli/commands/confront.js +8 -14
  281. package/dist/cli/commands/confront.js.map +1 -1
  282. package/dist/cli/commands/derive.d.ts.map +1 -1
  283. package/dist/cli/commands/derive.js +22 -22
  284. package/dist/cli/commands/derive.js.map +1 -1
  285. package/dist/cli/commands/discover.d.ts.map +1 -1
  286. package/dist/cli/commands/discover.js +122 -73
  287. package/dist/cli/commands/discover.js.map +1 -1
  288. package/dist/cli/commands/eval.d.ts.map +1 -1
  289. package/dist/cli/commands/eval.js +1 -0
  290. package/dist/cli/commands/eval.js.map +1 -1
  291. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  292. package/dist/cli/commands/evaluate.js +67 -39
  293. package/dist/cli/commands/evaluate.js.map +1 -1
  294. package/dist/cli/commands/explain.d.ts.map +1 -1
  295. package/dist/cli/commands/explain.js +24 -3
  296. package/dist/cli/commands/explain.js.map +1 -1
  297. package/dist/cli/commands/ground.d.ts.map +1 -1
  298. package/dist/cli/commands/ground.js +7 -1
  299. package/dist/cli/commands/ground.js.map +1 -1
  300. package/dist/cli/commands/map.d.ts.map +1 -1
  301. package/dist/cli/commands/map.js +84 -11
  302. package/dist/cli/commands/map.js.map +1 -1
  303. package/dist/cli/commands/metric.d.ts.map +1 -1
  304. package/dist/cli/commands/metric.js +12 -9
  305. package/dist/cli/commands/metric.js.map +1 -1
  306. package/dist/cli/commands/path.d.ts +10 -0
  307. package/dist/cli/commands/path.d.ts.map +1 -1
  308. package/dist/cli/commands/path.js +25 -3
  309. package/dist/cli/commands/path.js.map +1 -1
  310. package/dist/cli/commands/probe.d.ts.map +1 -1
  311. package/dist/cli/commands/probe.js +59 -16
  312. package/dist/cli/commands/probe.js.map +1 -1
  313. package/dist/cli/commands/regime.d.ts.map +1 -1
  314. package/dist/cli/commands/regime.js +1 -0
  315. package/dist/cli/commands/regime.js.map +1 -1
  316. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  317. package/dist/cli/commands/retrieve.js +1 -0
  318. package/dist/cli/commands/retrieve.js.map +1 -1
  319. package/dist/cli/commands/search.d.ts.map +1 -1
  320. package/dist/cli/commands/search.js +1 -0
  321. package/dist/cli/commands/search.js.map +1 -1
  322. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  323. package/dist/cli/commands/symbolic.js +19 -28
  324. package/dist/cli/commands/symbolic.js.map +1 -1
  325. package/dist/cli/commands/testplan.d.ts.map +1 -1
  326. package/dist/cli/commands/testplan.js +4 -2
  327. package/dist/cli/commands/testplan.js.map +1 -1
  328. package/dist/cli/determination.d.ts +1 -0
  329. package/dist/cli/determination.d.ts.map +1 -1
  330. package/dist/cli/determination.js.map +1 -1
  331. package/dist/cli/expr-print.d.ts +0 -2
  332. package/dist/cli/expr-print.d.ts.map +1 -1
  333. package/dist/cli/expr-print.js +7 -31
  334. package/dist/cli/expr-print.js.map +1 -1
  335. package/dist/cli/flag-help.d.ts +1 -0
  336. package/dist/cli/flag-help.d.ts.map +1 -1
  337. package/dist/cli/flag-help.js +1 -0
  338. package/dist/cli/flag-help.js.map +1 -1
  339. package/dist/cli/graphs.d.ts +2 -0
  340. package/dist/cli/graphs.d.ts.map +1 -1
  341. package/dist/cli/graphs.js +1 -0
  342. package/dist/cli/graphs.js.map +1 -1
  343. package/dist/cli/main.d.ts +8 -0
  344. package/dist/cli/main.d.ts.map +1 -1
  345. package/dist/cli/main.js +19 -3
  346. package/dist/cli/main.js.map +1 -1
  347. package/dist/cli/numeric-flag.d.ts +12 -0
  348. package/dist/cli/numeric-flag.d.ts.map +1 -0
  349. package/dist/cli/numeric-flag.js +44 -0
  350. package/dist/cli/numeric-flag.js.map +1 -0
  351. package/dist/cli/output.d.ts +28 -0
  352. package/dist/cli/output.d.ts.map +1 -1
  353. package/dist/cli/output.js +23 -0
  354. package/dist/cli/output.js.map +1 -1
  355. package/dist/cli/record-reach.js +2 -2
  356. package/dist/cli/record-reach.js.map +1 -1
  357. package/dist/cli/record-tables.d.ts.map +1 -1
  358. package/dist/cli/record-tables.js +6 -5
  359. package/dist/cli/record-tables.js.map +1 -1
  360. package/dist/cli/record.d.ts +1 -5
  361. package/dist/cli/record.d.ts.map +1 -1
  362. package/dist/cli/record.js +9 -8
  363. package/dist/cli/record.js.map +1 -1
  364. package/dist/cli/search-index.d.ts.map +1 -1
  365. package/dist/cli/search-index.js +7 -6
  366. package/dist/cli/search-index.js.map +1 -1
  367. package/dist/cli/statuses.d.ts +0 -2
  368. package/dist/cli/statuses.d.ts.map +1 -1
  369. package/dist/cli/statuses.js +12 -9
  370. package/dist/cli/statuses.js.map +1 -1
  371. package/dist/cli/stored-results.d.ts +7 -0
  372. package/dist/cli/stored-results.d.ts.map +1 -0
  373. package/dist/cli/stored-results.js +23 -0
  374. package/dist/cli/stored-results.js.map +1 -0
  375. package/dist/cli/version.d.ts +1 -0
  376. package/dist/cli/version.d.ts.map +1 -1
  377. package/dist/cli/version.js +8 -5
  378. package/dist/cli/version.js.map +1 -1
  379. package/dist/cli-api.d.ts +36 -5
  380. package/dist/cli-api.d.ts.map +1 -1
  381. package/dist/cli-api.js +30 -4
  382. package/dist/cli-api.js.map +1 -1
  383. package/dist/composition/algebraic-equivalence.d.ts +43 -0
  384. package/dist/composition/algebraic-equivalence.d.ts.map +1 -0
  385. package/dist/composition/algebraic-equivalence.js +115 -0
  386. package/dist/composition/algebraic-equivalence.js.map +1 -0
  387. package/dist/composition/axes.d.ts +0 -6
  388. package/dist/composition/axes.d.ts.map +1 -1
  389. package/dist/composition/axes.js +6 -6
  390. package/dist/composition/axes.js.map +1 -1
  391. package/dist/composition/axis-audit.d.ts +47 -20
  392. package/dist/composition/axis-audit.d.ts.map +1 -1
  393. package/dist/composition/axis-audit.js +82 -9
  394. package/dist/composition/axis-audit.js.map +1 -1
  395. package/dist/composition/bridge-analysis.d.ts +17 -0
  396. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  397. package/dist/composition/bridge-analysis.js +102 -55
  398. package/dist/composition/bridge-analysis.js.map +1 -1
  399. package/dist/composition/canonical-compare.d.ts +40 -0
  400. package/dist/composition/canonical-compare.d.ts.map +1 -1
  401. package/dist/composition/canonical-compare.js +122 -24
  402. package/dist/composition/canonical-compare.js.map +1 -1
  403. package/dist/composition/canonical-graph.d.ts +3 -3
  404. package/dist/composition/canonical-graph.d.ts.map +1 -1
  405. package/dist/composition/canonical-graph.js +11 -38
  406. package/dist/composition/canonical-graph.js.map +1 -1
  407. package/dist/composition/canonical-json.js +2 -2
  408. package/dist/composition/canonical-json.js.map +1 -1
  409. package/dist/composition/catalog-graph.d.ts.map +1 -1
  410. package/dist/composition/catalog-graph.js +2 -5
  411. package/dist/composition/catalog-graph.js.map +1 -1
  412. package/dist/composition/chain-candidate.d.ts +8 -0
  413. package/dist/composition/chain-candidate.d.ts.map +1 -1
  414. package/dist/composition/chain-candidate.js +9 -2
  415. package/dist/composition/chain-candidate.js.map +1 -1
  416. package/dist/composition/chain-match.d.ts +6 -3
  417. package/dist/composition/chain-match.d.ts.map +1 -1
  418. package/dist/composition/chain-match.js +4 -1
  419. package/dist/composition/chain-match.js.map +1 -1
  420. package/dist/composition/chain-result.d.ts.map +1 -1
  421. package/dist/composition/chain-result.js +2 -14
  422. package/dist/composition/chain-result.js.map +1 -1
  423. package/dist/composition/compose-symbolic.d.ts.map +1 -1
  424. package/dist/composition/compose-symbolic.js +3 -2
  425. package/dist/composition/compose-symbolic.js.map +1 -1
  426. package/dist/composition/compose.d.ts.map +1 -1
  427. package/dist/composition/compose.js +13 -5
  428. package/dist/composition/compose.js.map +1 -1
  429. package/dist/composition/composition-recovery.d.ts.map +1 -1
  430. package/dist/composition/composition-recovery.js +4 -7
  431. package/dist/composition/composition-recovery.js.map +1 -1
  432. package/dist/composition/consequence.d.ts +15 -5
  433. package/dist/composition/consequence.d.ts.map +1 -1
  434. package/dist/composition/consequence.js +6 -4
  435. package/dist/composition/consequence.js.map +1 -1
  436. package/dist/composition/discovery.d.ts +129 -9
  437. package/dist/composition/discovery.d.ts.map +1 -1
  438. package/dist/composition/discovery.js +171 -67
  439. package/dist/composition/discovery.js.map +1 -1
  440. package/dist/composition/edge.d.ts +21 -2
  441. package/dist/composition/edge.d.ts.map +1 -1
  442. package/dist/composition/edge.js +23 -1
  443. package/dist/composition/edge.js.map +1 -1
  444. package/dist/composition/enumerate.d.ts.map +1 -1
  445. package/dist/composition/enumerate.js +18 -3
  446. package/dist/composition/enumerate.js.map +1 -1
  447. package/dist/composition/evaluate-relation.d.ts +35 -11
  448. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  449. package/dist/composition/evaluate-relation.js +60 -39
  450. package/dist/composition/evaluate-relation.js.map +1 -1
  451. package/dist/composition/explain.d.ts +3 -12
  452. package/dist/composition/explain.d.ts.map +1 -1
  453. package/dist/composition/explain.js +7 -20
  454. package/dist/composition/explain.js.map +1 -1
  455. package/dist/composition/expr-eval.d.ts +1 -1
  456. package/dist/composition/expr-eval.d.ts.map +1 -1
  457. package/dist/composition/expr-eval.js +6 -15
  458. package/dist/composition/expr-eval.js.map +1 -1
  459. package/dist/composition/expr-simplify.d.ts +26 -14
  460. package/dist/composition/expr-simplify.d.ts.map +1 -1
  461. package/dist/composition/expr-simplify.js +64 -72
  462. package/dist/composition/expr-simplify.js.map +1 -1
  463. package/dist/composition/formula-shape.d.ts +23 -4
  464. package/dist/composition/formula-shape.d.ts.map +1 -1
  465. package/dist/composition/formula-shape.js +57 -17
  466. package/dist/composition/formula-shape.js.map +1 -1
  467. package/dist/composition/graph-structure.d.ts +98 -0
  468. package/dist/composition/graph-structure.d.ts.map +1 -0
  469. package/dist/composition/graph-structure.js +167 -0
  470. package/dist/composition/graph-structure.js.map +1 -0
  471. package/dist/composition/graph-viz-svg.d.ts.map +1 -1
  472. package/dist/composition/graph-viz-svg.js +1 -1
  473. package/dist/composition/graph-viz-svg.js.map +1 -1
  474. package/dist/composition/graph-viz.d.ts.map +1 -1
  475. package/dist/composition/graph-viz.js +8 -37
  476. package/dist/composition/graph-viz.js.map +1 -1
  477. package/dist/composition/grounding.d.ts.map +1 -1
  478. package/dist/composition/grounding.js +19 -7
  479. package/dist/composition/grounding.js.map +1 -1
  480. package/dist/composition/identifiability.d.ts +91 -4
  481. package/dist/composition/identifiability.d.ts.map +1 -1
  482. package/dist/composition/identifiability.js +363 -6
  483. package/dist/composition/identifiability.js.map +1 -1
  484. package/dist/composition/index.d.ts +8 -4
  485. package/dist/composition/index.d.ts.map +1 -1
  486. package/dist/composition/index.js +3 -2
  487. package/dist/composition/index.js.map +1 -1
  488. package/dist/composition/mathts-quiet.d.ts +7 -8
  489. package/dist/composition/mathts-quiet.d.ts.map +1 -1
  490. package/dist/composition/mathts-quiet.js +7 -16
  491. package/dist/composition/mathts-quiet.js.map +1 -1
  492. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  493. package/dist/composition/mathts-scalar-symbols.js +2 -1
  494. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  495. package/dist/composition/own-equation-magnitude.d.ts +95 -0
  496. package/dist/composition/own-equation-magnitude.d.ts.map +1 -0
  497. package/dist/composition/own-equation-magnitude.js +270 -0
  498. package/dist/composition/own-equation-magnitude.js.map +1 -0
  499. package/dist/composition/probe/backend-protocol.d.ts +3 -0
  500. package/dist/composition/probe/backend-protocol.d.ts.map +1 -1
  501. package/dist/composition/probe/backend-protocol.js.map +1 -1
  502. package/dist/composition/probe/candidate-store.d.ts +1 -0
  503. package/dist/composition/probe/candidate-store.d.ts.map +1 -1
  504. package/dist/composition/probe/candidate-store.js +1 -0
  505. package/dist/composition/probe/candidate-store.js.map +1 -1
  506. package/dist/composition/probe/corpus.d.ts +8 -4
  507. package/dist/composition/probe/corpus.d.ts.map +1 -1
  508. package/dist/composition/probe/corpus.js +23 -12
  509. package/dist/composition/probe/corpus.js.map +1 -1
  510. package/dist/composition/probe/dataset.d.ts +18 -0
  511. package/dist/composition/probe/dataset.d.ts.map +1 -1
  512. package/dist/composition/probe/dataset.js +95 -50
  513. package/dist/composition/probe/dataset.js.map +1 -1
  514. package/dist/composition/probe/experiment-design.d.ts +7 -1
  515. package/dist/composition/probe/experiment-design.d.ts.map +1 -1
  516. package/dist/composition/probe/experiment-design.js +44 -24
  517. package/dist/composition/probe/experiment-design.js.map +1 -1
  518. package/dist/composition/probe/falsify.d.ts +2 -0
  519. package/dist/composition/probe/falsify.d.ts.map +1 -1
  520. package/dist/composition/probe/falsify.js +2 -0
  521. package/dist/composition/probe/falsify.js.map +1 -1
  522. package/dist/composition/probe/fit.d.ts +7 -0
  523. package/dist/composition/probe/fit.d.ts.map +1 -1
  524. package/dist/composition/probe/fit.js +46 -22
  525. package/dist/composition/probe/fit.js.map +1 -1
  526. package/dist/composition/probe/frontier.d.ts.map +1 -1
  527. package/dist/composition/probe/frontier.js +33 -15
  528. package/dist/composition/probe/frontier.js.map +1 -1
  529. package/dist/composition/probe/generator.d.ts +30 -1
  530. package/dist/composition/probe/generator.d.ts.map +1 -1
  531. package/dist/composition/probe/generator.js +58 -36
  532. package/dist/composition/probe/generator.js.map +1 -1
  533. package/dist/composition/probe/index.d.ts +14 -0
  534. package/dist/composition/probe/index.d.ts.map +1 -1
  535. package/dist/composition/probe/index.js +6 -0
  536. package/dist/composition/probe/index.js.map +1 -1
  537. package/dist/composition/probe/limits.d.ts +25 -1
  538. package/dist/composition/probe/limits.d.ts.map +1 -1
  539. package/dist/composition/probe/limits.js +53 -11
  540. package/dist/composition/probe/limits.js.map +1 -1
  541. package/dist/composition/probe/pipeline.d.ts +5 -0
  542. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  543. package/dist/composition/probe/pipeline.js +73 -24
  544. package/dist/composition/probe/pipeline.js.map +1 -1
  545. package/dist/composition/probe/power-law.d.ts +121 -0
  546. package/dist/composition/probe/power-law.d.ts.map +1 -0
  547. package/dist/composition/probe/power-law.js +251 -0
  548. package/dist/composition/probe/power-law.js.map +1 -0
  549. package/dist/composition/probe/problem.d.ts +8 -4
  550. package/dist/composition/probe/problem.d.ts.map +1 -1
  551. package/dist/composition/probe/problem.js +177 -49
  552. package/dist/composition/probe/problem.js.map +1 -1
  553. package/dist/composition/probe/report.js +1 -1
  554. package/dist/composition/probe/report.js.map +1 -1
  555. package/dist/composition/probe/residual.d.ts +7 -1
  556. package/dist/composition/probe/residual.d.ts.map +1 -1
  557. package/dist/composition/probe/residual.js +10 -7
  558. package/dist/composition/probe/residual.js.map +1 -1
  559. package/dist/composition/probe/run-manifest.d.ts +1 -0
  560. package/dist/composition/probe/run-manifest.d.ts.map +1 -1
  561. package/dist/composition/probe/run-manifest.js.map +1 -1
  562. package/dist/composition/probe/scalar-search.d.ts +50 -0
  563. package/dist/composition/probe/scalar-search.d.ts.map +1 -0
  564. package/dist/composition/probe/scalar-search.js +169 -0
  565. package/dist/composition/probe/scalar-search.js.map +1 -0
  566. package/dist/composition/probe/scoring.d.ts +1 -0
  567. package/dist/composition/probe/scoring.d.ts.map +1 -1
  568. package/dist/composition/probe/scoring.js.map +1 -1
  569. package/dist/composition/probe/structure.d.ts +82 -17
  570. package/dist/composition/probe/structure.d.ts.map +1 -1
  571. package/dist/composition/probe/structure.js +129 -55
  572. package/dist/composition/probe/structure.js.map +1 -1
  573. package/dist/composition/probe/study.d.ts +31 -9
  574. package/dist/composition/probe/study.d.ts.map +1 -1
  575. package/dist/composition/probe/study.js +235 -184
  576. package/dist/composition/probe/study.js.map +1 -1
  577. package/dist/composition/probe/t-tail.d.ts +16 -0
  578. package/dist/composition/probe/t-tail.d.ts.map +1 -0
  579. package/dist/composition/probe/t-tail.js +29 -0
  580. package/dist/composition/probe/t-tail.js.map +1 -0
  581. package/dist/composition/probe/types.d.ts +3 -0
  582. package/dist/composition/probe/types.d.ts.map +1 -1
  583. package/dist/composition/probe/types.js.map +1 -1
  584. package/dist/composition/proposed-bridges.d.ts +52 -12
  585. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  586. package/dist/composition/proposed-bridges.js +107 -60
  587. package/dist/composition/proposed-bridges.js.map +1 -1
  588. package/dist/composition/quantity-clusters.d.ts +48 -0
  589. package/dist/composition/quantity-clusters.d.ts.map +1 -0
  590. package/dist/composition/quantity-clusters.js +98 -0
  591. package/dist/composition/quantity-clusters.js.map +1 -0
  592. package/dist/composition/rational-exponent.d.ts +40 -0
  593. package/dist/composition/rational-exponent.d.ts.map +1 -0
  594. package/dist/composition/rational-exponent.js +65 -0
  595. package/dist/composition/rational-exponent.js.map +1 -0
  596. package/dist/composition/representative-values.d.ts +22 -0
  597. package/dist/composition/representative-values.d.ts.map +1 -1
  598. package/dist/composition/representative-values.js +29 -0
  599. package/dist/composition/representative-values.js.map +1 -1
  600. package/dist/composition/retrodiction.d.ts +15 -0
  601. package/dist/composition/retrodiction.d.ts.map +1 -1
  602. package/dist/composition/retrodiction.js +12 -4
  603. package/dist/composition/retrodiction.js.map +1 -1
  604. package/dist/composition/user-equation.d.ts +1 -0
  605. package/dist/composition/user-equation.d.ts.map +1 -1
  606. package/dist/composition/user-equation.js +3 -2
  607. package/dist/composition/user-equation.js.map +1 -1
  608. package/dist/core/assignment.d.ts +19 -0
  609. package/dist/core/assignment.d.ts.map +1 -0
  610. package/dist/core/assignment.js +19 -0
  611. package/dist/core/assignment.js.map +1 -0
  612. package/dist/core/compare.d.ts +32 -0
  613. package/dist/core/compare.d.ts.map +1 -0
  614. package/dist/core/compare.js +46 -0
  615. package/dist/core/compare.js.map +1 -0
  616. package/dist/core/constants.d.ts +42 -41
  617. package/dist/core/constants.d.ts.map +1 -1
  618. package/dist/core/constants.js +71 -51
  619. package/dist/core/constants.js.map +1 -1
  620. package/dist/core/data-file.d.ts +7 -0
  621. package/dist/core/data-file.d.ts.map +1 -1
  622. package/dist/core/data-file.js +17 -0
  623. package/dist/core/data-file.js.map +1 -1
  624. package/dist/core/format.d.ts +36 -0
  625. package/dist/core/format.d.ts.map +1 -0
  626. package/dist/core/format.js +39 -0
  627. package/dist/core/format.js.map +1 -0
  628. package/dist/core/hash.d.ts +14 -0
  629. package/dist/core/hash.d.ts.map +1 -0
  630. package/dist/core/hash.js +17 -0
  631. package/dist/core/hash.js.map +1 -0
  632. package/dist/core/json-schema.d.ts +2 -0
  633. package/dist/core/json-schema.d.ts.map +1 -1
  634. package/dist/core/json-schema.js +14 -13
  635. package/dist/core/json-schema.js.map +1 -1
  636. package/dist/core/labeled-tensor.d.ts.map +1 -1
  637. package/dist/core/labeled-tensor.js +0 -8
  638. package/dist/core/labeled-tensor.js.map +1 -1
  639. package/dist/core/mathts-read.d.ts +25 -0
  640. package/dist/core/mathts-read.d.ts.map +1 -0
  641. package/dist/core/mathts-read.js +51 -0
  642. package/dist/core/mathts-read.js.map +1 -0
  643. package/dist/core/tensor.d.ts.map +1 -1
  644. package/dist/core/tensor.js +24 -0
  645. package/dist/core/tensor.js.map +1 -1
  646. package/dist/core/types.d.ts +5 -5
  647. package/dist/diff/bridge-ast-gradient.d.ts +27 -23
  648. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  649. package/dist/diff/bridge-ast-gradient.js +75 -173
  650. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  651. package/dist/diff/bridge-gradient.d.ts +19 -6
  652. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  653. package/dist/diff/bridge-gradient.js +19 -11
  654. package/dist/diff/bridge-gradient.js.map +1 -1
  655. package/dist/diff/bridge-specs.d.ts.map +1 -1
  656. package/dist/diff/bridge-specs.js +3 -0
  657. package/dist/diff/bridge-specs.js.map +1 -1
  658. package/dist/dimensional/algebra.d.ts +18 -0
  659. package/dist/dimensional/algebra.d.ts.map +1 -1
  660. package/dist/dimensional/algebra.js +41 -1
  661. package/dist/dimensional/algebra.js.map +1 -1
  662. package/dist/dimensional/ast-builders.d.ts +7 -0
  663. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  664. package/dist/dimensional/ast-builders.js +11 -0
  665. package/dist/dimensional/ast-builders.js.map +1 -1
  666. package/dist/dimensional/ast-leaves.d.ts +81 -0
  667. package/dist/dimensional/ast-leaves.d.ts.map +1 -0
  668. package/dist/dimensional/ast-leaves.js +146 -0
  669. package/dist/dimensional/ast-leaves.js.map +1 -0
  670. package/dist/dimensional/ast-types.d.ts +15 -0
  671. package/dist/dimensional/ast-types.d.ts.map +1 -1
  672. package/dist/dimensional/ast-types.js.map +1 -1
  673. package/dist/dimensional/buckingham.d.ts.map +1 -1
  674. package/dist/dimensional/buckingham.js +15 -27
  675. package/dist/dimensional/buckingham.js.map +1 -1
  676. package/dist/dimensional/constant-rows.js +9 -9
  677. package/dist/dimensional/constant-rows.js.map +1 -1
  678. package/dist/dimensional/curvature-composite.d.ts +1 -1
  679. package/dist/dimensional/curvature-composite.js.map +1 -1
  680. package/dist/dimensional/dimension-inference.d.ts.map +1 -1
  681. package/dist/dimensional/dimension-inference.js +1 -2
  682. package/dist/dimensional/dimension-inference.js.map +1 -1
  683. package/dist/dimensional/errors.d.ts +1 -1
  684. package/dist/dimensional/errors.d.ts.map +1 -1
  685. package/dist/dimensional/errors.js +1 -15
  686. package/dist/dimensional/errors.js.map +1 -1
  687. package/dist/dimensional/exact-scale.d.ts +24 -11
  688. package/dist/dimensional/exact-scale.d.ts.map +1 -1
  689. package/dist/dimensional/exact-scale.js +122 -130
  690. package/dist/dimensional/exact-scale.js.map +1 -1
  691. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  692. package/dist/dimensional/gauge-field.js +2 -2
  693. package/dist/dimensional/gauge-field.js.map +1 -1
  694. package/dist/dimensional/hyphen-names.d.ts +12 -2
  695. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  696. package/dist/dimensional/hyphen-names.js +44 -19
  697. package/dist/dimensional/hyphen-names.js.map +1 -1
  698. package/dist/dimensional/mathts-unit-delegation.d.ts +29 -0
  699. package/dist/dimensional/mathts-unit-delegation.d.ts.map +1 -0
  700. package/dist/dimensional/mathts-unit-delegation.js +187 -0
  701. package/dist/dimensional/mathts-unit-delegation.js.map +1 -0
  702. package/dist/dimensional/mathts-unit-wrapper.d.ts +33 -0
  703. package/dist/dimensional/mathts-unit-wrapper.d.ts.map +1 -0
  704. package/dist/dimensional/mathts-unit-wrapper.js +190 -0
  705. package/dist/dimensional/mathts-unit-wrapper.js.map +1 -0
  706. package/dist/dimensional/metric.d.ts.map +1 -1
  707. package/dist/dimensional/metric.js +0 -1
  708. package/dist/dimensional/metric.js.map +1 -1
  709. package/dist/dimensional/scalar-lowering.d.ts +21 -0
  710. package/dist/dimensional/scalar-lowering.d.ts.map +1 -0
  711. package/dist/dimensional/scalar-lowering.js +45 -0
  712. package/dist/dimensional/scalar-lowering.js.map +1 -0
  713. package/dist/dimensional/symbolic-constants.d.ts +9 -0
  714. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  715. package/dist/dimensional/symbolic-constants.js +13 -1
  716. package/dist/dimensional/symbolic-constants.js.map +1 -1
  717. package/dist/dimensional/types.d.ts +36 -0
  718. package/dist/dimensional/types.d.ts.map +1 -1
  719. package/dist/dimensional/types.js +45 -7
  720. package/dist/dimensional/types.js.map +1 -1
  721. package/dist/dimensional/unit-data.d.ts +5 -1
  722. package/dist/dimensional/unit-data.d.ts.map +1 -1
  723. package/dist/dimensional/unit-data.js +30 -6
  724. package/dist/dimensional/unit-data.js.map +1 -1
  725. package/dist/dimensional/units.d.ts +2 -0
  726. package/dist/dimensional/units.d.ts.map +1 -1
  727. package/dist/dimensional/units.js +59 -3
  728. package/dist/dimensional/units.js.map +1 -1
  729. package/dist/dimensional/validator.d.ts +2 -0
  730. package/dist/dimensional/validator.d.ts.map +1 -1
  731. package/dist/dimensional/validator.js.map +1 -1
  732. package/dist/index.d.ts +9 -3
  733. package/dist/index.d.ts.map +1 -1
  734. package/dist/index.js +10 -4
  735. package/dist/index.js.map +1 -1
  736. package/dist/numerical/christoffel-flat.d.ts.map +1 -1
  737. package/dist/numerical/christoffel-flat.js +3 -2
  738. package/dist/numerical/christoffel-flat.js.map +1 -1
  739. package/dist/numerical/connection-lowering-helpers.d.ts +3 -1
  740. package/dist/numerical/connection-lowering-helpers.d.ts.map +1 -1
  741. package/dist/numerical/connection-lowering-helpers.js +11 -15
  742. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  743. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  744. package/dist/numerical/covariant-eikonal.js +34 -11
  745. package/dist/numerical/covariant-eikonal.js.map +1 -1
  746. package/dist/numerical/curvature-lowering-helpers.js +3 -2
  747. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  748. package/dist/numerical/errors.d.ts.map +1 -1
  749. package/dist/numerical/errors.js +0 -3
  750. package/dist/numerical/errors.js.map +1 -1
  751. package/dist/numerical/finite-difference.d.ts +22 -0
  752. package/dist/numerical/finite-difference.d.ts.map +1 -0
  753. package/dist/numerical/finite-difference.js +27 -0
  754. package/dist/numerical/finite-difference.js.map +1 -0
  755. package/dist/numerical/geodesic-integrator.d.ts.map +1 -1
  756. package/dist/numerical/geodesic-integrator.js +22 -14
  757. package/dist/numerical/geodesic-integrator.js.map +1 -1
  758. package/dist/numerical/geometrized.d.ts.map +1 -1
  759. package/dist/numerical/geometrized.js +0 -1
  760. package/dist/numerical/geometrized.js.map +1 -1
  761. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  762. package/dist/numerical/mathts-engine.js +10 -24
  763. package/dist/numerical/mathts-engine.js.map +1 -1
  764. package/dist/numerical/metric-inverse.d.ts.map +1 -1
  765. package/dist/numerical/metric-inverse.js +83 -46
  766. package/dist/numerical/metric-inverse.js.map +1 -1
  767. package/dist/numerical/null-ray-integrator.d.ts +2 -1
  768. package/dist/numerical/null-ray-integrator.d.ts.map +1 -1
  769. package/dist/numerical/null-ray-integrator.js +12 -12
  770. package/dist/numerical/null-ray-integrator.js.map +1 -1
  771. package/dist/numerical/painleve-gullstrand-metric.js +2 -2
  772. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  773. package/dist/numerical/pderiv.d.ts.map +1 -1
  774. package/dist/numerical/pderiv.js +2 -6
  775. package/dist/numerical/pderiv.js.map +1 -1
  776. package/dist/numerical/perihelion-finder.d.ts +0 -36
  777. package/dist/numerical/perihelion-finder.d.ts.map +1 -1
  778. package/dist/numerical/perihelion-finder.js +41 -87
  779. package/dist/numerical/perihelion-finder.js.map +1 -1
  780. package/dist/numerical/quadrature.d.ts.map +1 -1
  781. package/dist/numerical/quadrature.js +11 -13
  782. package/dist/numerical/quadrature.js.map +1 -1
  783. package/dist/numerical/rk4-trajectory.d.ts +10 -0
  784. package/dist/numerical/rk4-trajectory.d.ts.map +1 -0
  785. package/dist/numerical/rk4-trajectory.js +37 -0
  786. package/dist/numerical/rk4-trajectory.js.map +1 -0
  787. package/dist/numerical/schwarzschild.d.ts +14 -0
  788. package/dist/numerical/schwarzschild.d.ts.map +1 -0
  789. package/dist/numerical/schwarzschild.js +17 -0
  790. package/dist/numerical/schwarzschild.js.map +1 -0
  791. package/dist/numerical/spacetime-metrics.d.ts +12 -0
  792. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  793. package/dist/numerical/spacetime-metrics.js +72 -56
  794. package/dist/numerical/spacetime-metrics.js.map +1 -1
  795. package/dist/numerical/statistics.d.ts +24 -0
  796. package/dist/numerical/statistics.d.ts.map +1 -0
  797. package/dist/numerical/statistics.js +52 -0
  798. package/dist/numerical/statistics.js.map +1 -0
  799. package/dist/numerical/strides.d.ts +3 -2
  800. package/dist/numerical/strides.d.ts.map +1 -1
  801. package/dist/numerical/strides.js +3 -10
  802. package/dist/numerical/strides.js.map +1 -1
  803. package/dist/numerical/tensor-engine.d.ts +21 -0
  804. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  805. package/dist/numerical/tensor-engine.js +12 -0
  806. package/dist/numerical/tensor-engine.js.map +1 -1
  807. package/dist/relations/regime.d.ts +10 -0
  808. package/dist/relations/regime.d.ts.map +1 -1
  809. package/dist/relations/regime.js +18 -1
  810. package/dist/relations/regime.js.map +1 -1
  811. package/package.json +9 -12
  812. package/dist/cases/brownian-sphere.d.ts +0 -68
  813. package/dist/cases/brownian-sphere.d.ts.map +0 -1
  814. package/dist/cases/brownian-sphere.js +0 -354
  815. package/dist/cases/brownian-sphere.js.map +0 -1
  816. package/dist/cases/damped-resonator.d.ts +0 -23
  817. package/dist/cases/damped-resonator.d.ts.map +0 -1
  818. package/dist/cases/damped-resonator.js +0 -224
  819. package/dist/cases/damped-resonator.js.map +0 -1
  820. package/dist/cases/kepler-rv.d.ts +0 -13
  821. package/dist/cases/kepler-rv.d.ts.map +0 -1
  822. package/dist/cases/kepler-rv.js +0 -172
  823. package/dist/cases/kepler-rv.js.map +0 -1
  824. package/dist/cases/lumped-cooling.d.ts +0 -46
  825. package/dist/cases/lumped-cooling.d.ts.map +0 -1
  826. package/dist/cases/lumped-cooling.js +0 -261
  827. package/dist/cases/lumped-cooling.js.map +0 -1
  828. package/dist/cases/resistor-noise.d.ts +0 -14
  829. package/dist/cases/resistor-noise.d.ts.map +0 -1
  830. package/dist/cases/resistor-noise.js +0 -215
  831. package/dist/cases/resistor-noise.js.map +0 -1
  832. package/dist/cases/skin-depth.d.ts +0 -21
  833. package/dist/cases/skin-depth.d.ts.map +0 -1
  834. package/dist/cases/skin-depth.js +0 -174
  835. package/dist/cases/skin-depth.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"path.js","sourceRoot":"","sources":["../../../src/cli/commands/path.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `upt path` — the route between two models of a family, and what that route\n * actually WARRANTS.\n *\n * Two answers, kept apart on purpose, because `atlas/path-bound.ts` keeps them\n * apart: `findPath` says a chain of bridges exists, and that says nothing about\n * whether the chain supports a claim. `boundPath` says what it supports, and\n * its answer is a DISCRIMINATED UNION whose `'no-claim'` member carries no\n * number at all. This command never prints a bound for a no-claim, and never\n * synthesizes one — a precise-looking composed number over an undefined\n * composite is the most dangerous thing this tool could emit.\n *\n * A no-claim is an ANSWER, not an error: `upt path` exits 0 when the\n * composition table declines to compose. The refusal is the result.\n *\n * Horizons are evaluated only when `--at` supplies a `t`. An unevaluated\n * horizon is reported as unevaluated, on the same rule that makes\n * `regimeHolds` tri-state.\n *\n * The REGIME of every bridge on the path is checked at the `--at` point too.\n * A bound is claimed only inside its bridge's regime, so a horizon that holds\n * says nothing when the point is outside the regime: this command once printed\n * the pendulum bound and \"all hold\" at θ0 = 0.8, where the bound's own regime\n * is θ0 ≤ 0.5 and the true error is 2.6 times the bound. An unchecked regime\n * is reported as unknown, never as a pass.\n */\nimport type { FlagSpec } from '../args.js';\nimport { registerCommand, type Command, type CommandCtx } from '../command.js';\nimport { commandHelp, JSON_FLAG } from '../flag-help.js';\nimport { CliError, EXIT_CHECK_FAILED, UsageError } from '../errors.js';\nimport { emitJson } from '../output.js';\nimport { parseAt, resolveAtPoint, showInequality } from './regime.js';\nimport { explainsRefusal, missingForComposite, routeClaim, selectRoute, transportReport, type RouteClaim } from './_atlas-route.js';\n\nconst FLAGS: FlagSpec[] = [\n {\n name: '--at',\n valueStyle: 'either',\n repeatable: true,\n description: 'State one regime coordinate as group=value. A value may be an expression such as pi/2.',\n },\n {\n name: '--sweep',\n valueStyle: 'either',\n description: 'Sample one coordinate as name=lo:hi:n or name=lo:hi:n:log, with n from 2 to 200.',\n },\n {\n name: '--compare',\n valueStyle: 'either',\n description: 'Sweep a second route from the same source to this model id and mark NEITHER where no limit applies.',\n },\n { name: '--csv', valueStyle: 'none', description: 'Write sweep rows as CSV.' },\n {\n name: '--tolerance',\n valueStyle: 'attached',\n description: 'Judge adequacy against EPS in the bound\\'s norm, or name:EPS through a declared translation. Exit 3 when inadequate.',\n },\n JSON_FLAG,\n];\n\nconst HELP = `upt path <from> <to> [--at group=value ...] [--tolerance=[observable:]EPS]\n [--sweep name=lo:hi:n[:log]] [--compare=<to2>] [--csv] [--json]\n The chain of bridges from one model to another (across families when\n a bridge ends in another family's model), the relation the chain\n composes to, the composed (K, delta) with the norm it holds in,\n whether every bridge's REGIME holds at --at (the bound is claimed only\n inside it), and whether every horizon still holds (pass t=<time> plus\n the parameters, e.g. --at theta0=0.2 T0=1 t=10).\n When the composition table declines to compose the relations, the path\n carries NO bound: the command prints 'no composite claim' and exits 0.\n That refusal is the answer, and no number is invented in its place.\n An exact equivalence carries a bound only in a norm it DECLARES a\n transport of, in the declared direction, with a witness (ab-spring-lc:\n relative period error, spring → lc; the horizon is restated on the\n circuit clock). Any other norm or direction is refused as\n 'norm-not-stated', and the refusal names the missing declaration.\n --at values are numbers, units, or constant expressions (theta0=pi/2).\n T, temperature, temp, and T_K are kelvin: an energy on that name is k_B T.\n A sweep of one of those names reads its endpoints the same way.\n A regime or horizon that was checked and failed prints no bound\n number: the domain supremum is not a claim at that point.\n --sweep name=lo:hi:n[:log] evaluates the path at n samples (2 to 200,\n endpoints included) of one parameter not fixed by --at: per row the\n regime, the horizon and the closed-form point error. A row outside a\n regime or past a horizon carries no error, because no bound is claimed\n there. A sweep exits 0: each row is its own verdict. --csv writes the\n rows as CSV.\n --compare=<to2> (with --sweep) sweeps a second route from the same\n source beside the first: per row each route's regime, horizon and\n error in its OWN norm (never compared with the other's), and NEITHER,\n with no number, where no encoded limit applies.\n --tolerance=EPS asks whether the path is accurate enough: ADEQUATE only\n when every regime holds, every horizon holds at the given t, and the\n closed-form point error is <= EPS; INADEQUATE (exit 3) when any of\n them fails; UNDETERMINED when the point does not settle it. EPS is in\n the bound's own norm. With --sweep, each row is judged.\n --tolerance=<observable>:EPS asks in ANOTHER observable, only through\n a translation the first bridge declares (ab-pendulum-linear: phase, the\n exact accumulated error, and position, an upper bound on |θ − θ_lin|;\n both in rad, t in the unit of T0), carried past each later bridge only\n by that bridge's declared carriage (ab-spring-lc carries phase). It\n reports the horizon t* at which the error reaches EPS, ADEQUATE iff\n t <= t* (inclusive; past t* an upper bound is UNDETERMINED, not\n INADEQUATE), and the evidence of the translation and of each carriage,\n derived by running their witnesses, plus the translation's witness\n run at this point with a control. Otherwise it is UNDETERMINED.\n A route may cross families. A bound crosses only through the relation,\n uniformity, Lipschitz, and norm gates, and, across families, only\n through a witnessed norm transport; a matching norm name is not one\n (reason cross-family-unmapped, still exit 0).\n A bridge with two or more premises is named when both models appear\n among its premises and its conclusion. That line is the bridge; it is\n not a step of the chain, and a missing chain still exits 0.\n e.g. upt path model-pendulum model-spring --at theta0=0.2 T0=1 t=10\n upt path model-pendulum model-spring --at T0=1 t=10 --sweep theta0=0.1:0.8:8\n upt path model-pendulum model-lc --at theta0=0.3 T0=2 t=5 --tolerance=phase:0.1\n upt path model-telegraph model-fick --compare=model-wave-1d --at D=1 q=1 t=1 --sweep tau=0.001:1000:13:log`;\n\nconst EPISTEMICS =\n 'a path EXISTING is not a warrant: the bound is the warrant. A no-claim carries no number, ' +\n 'and none is synthesized for it.';\n\ninterface MultiPremise {\n readonly id: string;\n readonly premises: readonly string[];\n readonly conclusion: string;\n}\n\n/** Bridges with two or more premises that mention both endpoints. Not a chain. */\nfunction multiPremiseBridges(api: CommandCtx['api'], from: string, to: string): MultiPremise[] {\n const rows: MultiPremise[] = [];\n const seen = new Set<string>();\n for (const f of api.ATLAS_FAMILIES) {\n for (const b of f.bridges) {\n if (b.premises.length < 2 || seen.has(b.id)) continue;\n const ends = new Set([...b.premises, b.conclusion]);\n if (!ends.has(from) || !ends.has(to)) continue;\n seen.add(b.id);\n rows.push({ id: b.id, premises: [...b.premises], conclusion: b.conclusion });\n }\n }\n return rows;\n}\n\nfunction printMultiPremise(out: CommandCtx['out'], rows: readonly MultiPremise[]): void {\n for (const b of rows) {\n out(` multi-premise bridge: ${b.id}: ${b.premises.join(' + ')} → ${b.conclusion}`);\n }\n if (rows.length > 0) {\n out(' A path composes one premise at a time. This bridge needs every premise named above.');\n }\n}\n\n/** The literal phrase the no-composite-claim case must print. */\nconst NO_COMPOSITE_PHRASE = 'no composite claim';\n\ninterface RegimeReport {\n bridgeId: string;\n ok: boolean | 'unknown';\n violated: string[];\n unchecked: string[];\n /** The bridge's prose side conditions: stated, never evaluated here. */\n premisesNotChecked?: string[];\n}\n\ninterface HorizonReport {\n bridgeId: string;\n horizon: string;\n holds: boolean | null;\n /** The transports that restated this horizon for the end of the route; absent when none did. */\n restatedBy?: { transport: string; horizon: string }[];\n /** Set when a family change reached this step with no time map. Unevaluated, not violated. */\n unevaluated?: 'cross-family';\n}\n\nconst MAX_SAMPLES = 200;\n\n/** `name=lo:hi:n` or `name=lo:hi:n:log`, bounded; the endpoints are both sampled. */\nexport function parseSweep(\n api: CommandCtx['api'],\n spec: string,\n): { name: string; values: number[]; spacing: 'linear' | 'log' } {\n const m = /^([^=\\s]+)=([^:]+):([^:]+):([^:]+)(?::(linear|log))?$/.exec(spec);\n if (m === null) throw new CliError(`upt path: --sweep '${spec}' is not name=lo:hi:n[:log], e.g. --sweep theta0=0.05:0.9:18`);\n const [, name, loS, hiS, nS, sp] = m as unknown as [string, string, string, string, string, string | undefined];\n const endpoint = (raw: string): number => {\n try {\n const read = api.readNamedBinding(name, raw);\n return Number.isFinite(read.value) ? read.value : Number.NaN;\n } catch (e) {\n if (e instanceof api.UnitError) {\n throw new CliError(`upt path: --sweep '${spec}' is not a temperature. ${e.message}`);\n }\n return Number.NaN;\n }\n };\n const lo = endpoint(loS);\n const hi = endpoint(hiS);\n const n = Number(nS);\n const spacing = sp === 'log' ? 'log' : 'linear';\n if (!Number.isFinite(lo) || !Number.isFinite(hi) || !(lo < hi)) {\n throw new CliError(`upt path: --sweep '${spec}' needs finite lo < hi`);\n }\n if (!Number.isInteger(n) || n < 2 || n > MAX_SAMPLES) {\n throw new CliError(`upt path: --sweep '${spec}' needs an integer sample count from 2 to ${MAX_SAMPLES}`);\n }\n if (spacing === 'log' && lo <= 0) throw new CliError(`upt path: --sweep '${spec}' is log-spaced, so lo must be > 0`);\n const values = Array.from({ length: n }, (_, i) =>\n spacing === 'log' ? lo * (hi / lo) ** (i / (n - 1)) : lo + ((hi - lo) * i) / (n - 1),\n );\n return { name, values, spacing };\n}\n\n// `readonly` directly before `import('…').T` is a tree-sitter ERROR node. Alias\n// the import type first; the array is still readonly.\ntype AtlasBridge = import('../../cli-api.js').AtlasBridge;\ntype Witness = import('../../cli-api.js').Witness;\ntype Bridges = readonly AtlasBridge[];\ntype Translation = import('../../cli-api.js').ObservableTranslation;\ntype Carriage = import('../../cli-api.js').ObservableCarriage;\n\nfunction modelFamilyOf(api: CommandCtx['api'], id: string | null): string | undefined {\n if (id === null) return undefined;\n return api.ATLAS_FAMILIES.find((f) => f.models.some((m) => m.id === id))?.family;\n}\n\nfunction filingFamilyOf(api: CommandCtx['api'], id: string): string | undefined {\n return api.ATLAS_FAMILIES.find((f) => f.bridges.some((b) => b.id === id))?.family;\n}\n\n/** The model a step leaves, entered at `entry`. An exact step may leave by either end. */\nfunction leaveModel(bridge: AtlasBridge, entry: string): string | null {\n if (bridge.premises.length !== 1) return null;\n const premise = bridge.premises[0]!;\n if (entry === premise) return bridge.conclusion;\n if (bridge.relation === 'exact-equivalence' && entry === bridge.conclusion) return premise;\n return null;\n}\n\ninterface PathStepLabel {\n readonly id: string;\n readonly relation: AtlasBridge['relation'];\n readonly from: string | undefined;\n readonly to: string;\n readonly family: string | undefined;\n readonly fromModelFamily: string | undefined;\n readonly toModelFamily: string | undefined;\n}\n\n/**\n * Families of the models a route visits, in order, starting at `from`.\n * Adjacent duplicates collapse. A family visited again after a different one\n * stays in the list. `family` on each step stays the filing family.\n */\nfunction routeFamilyLabels(\n api: CommandCtx['api'],\n bridges: readonly AtlasBridge[],\n from: string,\n): {\n readonly crossFamily: boolean;\n readonly modelFamilies: readonly string[];\n readonly steps: readonly PathStepLabel[];\n} {\n const modelFamilies: string[] = [];\n const push = (id: string | null): string | undefined => {\n const family = modelFamilyOf(api, id);\n if (family !== undefined && modelFamilies[modelFamilies.length - 1] !== family) modelFamilies.push(family);\n return family;\n };\n if (bridges.length === 0) {\n push(from);\n return { crossFamily: false, modelFamilies, steps: [] };\n }\n let at: string | null = from;\n const steps = bridges.map((b) => {\n const entry = at;\n const exit = entry === null ? null : leaveModel(b, entry);\n const fromModelFamily = modelFamilies.length === 0 ? push(entry) : modelFamilyOf(api, entry);\n const toModelFamily = push(exit);\n at = exit;\n return {\n id: b.id,\n relation: b.relation,\n from: b.premises[0],\n to: b.conclusion,\n family: filingFamilyOf(api, b.id),\n fromModelFamily,\n toModelFamily,\n };\n });\n return { crossFamily: modelFamilies.length > 1, modelFamilies, steps };\n}\n\n/**\n * The translation a path can use for `observable`: the first bridge's, carried\n * through every later bridge only by that bridge's declared carriage of the\n * same observable. A later bridge without one stops it, whatever its relation.\n */\nfunction pathTranslation(\n api: CommandCtx['api'],\n bridges: Bridges,\n observable: string,\n): { tr: Translation; carriages: Carriage[] } | { tr: null; blockedBy: string | null } {\n const tr = api.translationsOf(bridges[0]!.id).find((x) => x.observable === observable);\n if (tr === undefined) return { tr: null, blockedBy: null };\n const carriages: Carriage[] = [];\n for (const b of bridges.slice(1)) {\n const c = api.carriageOf(b.id, observable);\n if (c === undefined) return { tr: null, blockedBy: b.id };\n carriages.push(c);\n }\n return { tr, carriages };\n}\n\n/** The observables a path can be asked in: its first bridge's translations that every later bridge carries. */\nfunction pathObservables(api: CommandCtx['api'], bridges: Bridges): Translation[] {\n return api\n .translationsOf(bridges[0]!.id)\n .filter((t) => pathTranslation(api, bridges, t.observable).tr !== null);\n}\n\n/** What a tolerance in the bound's own norm is judged in, and what else this path can be asked in. */\nfunction toleranceScope(api: CommandCtx['api'], bridges: Bridges): string {\n const declared = pathObservables(api, bridges);\n if (declared.length === 0) {\n return \"judged in the bound's own norm only; no translation to another observable (phase, trajectory, amplitude) is encoded for this path\";\n }\n const asks = declared.map((t) => `--tolerance=${t.observable}:EPS (${t.unit})`).join(', ');\n const through = bridges.length > 1 ? `, carried by ${bridges.slice(1).map((b) => b.id).join(', ')}` : '';\n return `judged in the bound's own norm only; ${bridges[0]!.id} declares a translation${through}, asked with ${asks}`;\n}\n\n/**\n * Whether the path is adequate for a requested tolerance at one point: every\n * regime holds, every horizon holds at the given t, and the closed-form point\n * error is within it. Anything the point does not settle is `undetermined`,\n * never `adequate`.\n * @internal\n */\nexport function judgeTolerance(\n tolerance: number,\n e: Evaluation,\n tGiven: boolean,\n): { verdict: 'adequate' | 'inadequate' | 'undetermined'; reason: string } {\n if (e.allRegimesHold === false) return { verdict: 'inadequate', reason: 'outside a regime on the path: no bound is claimed' };\n if (e.allRegimesHold === 'unknown') return { verdict: 'undetermined', reason: 'a regime coordinate was not supplied' };\n if (e.horizons.length > 0 && !tGiven) return { verdict: 'undetermined', reason: 'no t= given, so the horizon was not evaluated' };\n if (e.horizons.some((h) => h.holds === false)) return { verdict: 'inadequate', reason: 'past the horizon: the bound is not claimed there' };\n if (e.horizons.some((h) => h.holds === null)) {\n return { verdict: 'undetermined', reason: 'a family change did not restate a horizon onto the next clock' };\n }\n if (e.horizons.length > 0 && !e.allHold) return { verdict: 'inadequate', reason: 'past the horizon: the bound is not claimed there' };\n if (e.pointBound === null) return { verdict: 'undetermined', reason: e.pointBoundReason ?? 'no point bound' };\n return e.pointBound.delta <= tolerance\n ? { verdict: 'adequate', reason: `error ${e.pointBound.delta} <= tolerance ${tolerance}` }\n : { verdict: 'inadequate', reason: `error ${e.pointBound.delta} exceeds tolerance ${tolerance}` };\n}\n\n/** `EPS` in the bound's own norm (`observable: null`), or `<observable>:EPS`. */\nexport interface ToleranceRequest {\n observable: string | null;\n value: number;\n}\n\n/** Read a `--tolerance` argument as `EPS` or `<observable>:EPS`. Returns null when the flag is absent, and throws a {@link CliError} when it is present and malformed. */\nexport function parseTolerance(api: CommandCtx['api'], raw: string | undefined): ToleranceRequest | null {\n if (raw === undefined) return null;\n const colon = raw.indexOf(':');\n const observable = colon === -1 ? null : raw.slice(0, colon);\n const number = colon === -1 ? raw : raw.slice(colon + 1);\n if (observable !== null && !/^[a-z][a-z-]*$/.test(observable)) {\n throw new CliError(`upt path: --tolerance=${raw} is not EPS or <observable>:EPS, e.g. --tolerance=phase:0.1`);\n }\n let v = Number.NaN;\n try {\n if (number !== '') v = api.readBinding(number).value;\n } catch {\n v = Number.NaN;\n }\n if (number === '' || !Number.isFinite(v) || v <= 0) throw new CliError(`upt path: --tolerance=${raw} must be a finite number > 0`);\n return { observable, value: v };\n}\n\nconst showTolerance = (r: ToleranceRequest, unit?: string): string =>\n r.observable === null ? String(r.value) : `${r.observable}:${r.value}${unit === undefined ? '' : ` ${unit}`}`;\n\n/** A tolerance in another observable, judged through the path's declared translation. */\ninterface ObservableJudgement {\n verdict: 'adequate' | 'inadequate' | 'undetermined';\n reason: string;\n translation: Translation | null;\n /** The later bridges' declared carriages of the observable, in path order. */\n carriages: Carriage[];\n /** The translated bridge's quantity at this point, in its bound's norm. */\n boundErrorAtPoint: number | null;\n /** The translated bridge's supremum over its domain, in the same norm. */\n domainSupremum: number | null;\n /** The accumulated error in the observable at the given t (an upper bound when the translation is one). */\n observableErrorAt: number | null;\n /** t*: where the accumulated error reaches the tolerance at this point. */\n horizon: number | null;\n /** t* from the domain supremum: the shortest over the bridge's domain. */\n domainHorizon: number | null;\n /** The translated bridge's own horizon at t; `null` when t was not given. */\n bridgeHorizonHolds: boolean | null;\n}\n\n/**\n * Whether the path is adequate for a tolerance in another observable. Only a\n * path whose first bridge declares a translation into that observable, and\n * whose every later bridge declares that it carries it, is judged; every\n * regime, the translated bridge's closed-form point value and its own horizon\n * still gate it, and anything the point does not settle is `undetermined`. An\n * upper-bound translation past its horizon is `undetermined` too: there the\n * BOUND exceeds the tolerance, which does not show that the error does.\n * @internal\n */\nexport function judgeObservable(\n api: CommandCtx['api'],\n request: ToleranceRequest & { observable: string },\n bridges: Bridges,\n e: Evaluation,\n at: Readonly<Record<string, number>>,\n): ObservableJudgement {\n const found = pathTranslation(api, bridges, request.observable);\n const tr = found.tr;\n const first = bridges[0]!;\n const bound = first.bound;\n const pointValue =\n e.allRegimesHold === true && bound?.deltaAt !== undefined && bound.deltaAtBasis === 'closed-form' ? bound.deltaAt(at) : null;\n const none = {\n translation: tr,\n carriages: found.tr === null ? [] : found.carriages,\n boundErrorAtPoint: pointValue !== null && Number.isFinite(pointValue) ? pointValue : null,\n domainSupremum: tr === null ? (bridges.length === 1 ? (bound?.delta ?? null) : null) : (bound?.delta ?? null),\n observableErrorAt: null,\n horizon: null,\n domainHorizon: null,\n bridgeHorizonHolds: null,\n };\n if (found.tr === null) {\n const declared = api.translationsOf(first.id);\n const reason =\n found.blockedBy !== null\n ? `${first.id}'s translation into '${request.observable}' does not reach the end of this path: '${found.blockedBy}' ` +\n `declares no carriage of '${request.observable}' through its map, and a translation composes only through one`\n : `no translation from '${bound?.norm ?? 'no bound'}' into '${request.observable}' is encoded for ${first.id}` +\n (declared.length === 0 ? '' : ` (it declares: ${declared.map((x) => x.observable).join(', ')})`);\n return { verdict: 'undetermined', reason, ...none };\n }\n if (e.allRegimesHold === false) return { verdict: 'inadequate', reason: 'outside a regime on the path: no bound is claimed', ...none };\n if (e.allRegimesHold === 'unknown') return { verdict: 'undetermined', reason: 'a regime coordinate was not supplied', ...none };\n if (bound === undefined || bound.deltaAt === undefined || bound.deltaAtBasis !== 'closed-form') {\n return { verdict: 'undetermined', reason: `${first.id} states no closed-form point value to translate`, ...none };\n }\n if (none.boundErrorAtPoint === null) {\n return { verdict: 'undetermined', reason: 'a parameter the point value needs was not supplied', ...none };\n }\n const missing = found.tr.parameters.filter((p) => at[p] === undefined);\n if (missing.length > 0) {\n return { verdict: 'undetermined', reason: `the translation needs ${missing.join(', ')} (via --at)`, ...none };\n }\n const tx = found.tr;\n const eps = none.boundErrorAtPoint;\n const floor = tx.floor?.(eps);\n if (floor !== undefined && floor > request.value) {\n return {\n verdict: 'undetermined',\n reason:\n `the translation's time-independent term is ${floor} ${tx.unit} at this point, above the tolerance: this bound ` +\n 'certifies no t, which is not a finding that the error exceeds the tolerance',\n ...none,\n };\n }\n const horizon = tx.horizonFor(eps, request.value, at);\n const domainHorizon = tx.horizonFor(bound.delta, request.value, at);\n if (Number.isNaN(horizon)) return { verdict: 'undetermined', reason: 'the translation is undefined at this point', ...none };\n const t = at['t'];\n const judged = { ...none, horizon, domainHorizon: Number.isNaN(domainHorizon) ? null : domainHorizon };\n if (t === undefined) {\n return {\n verdict: 'undetermined',\n reason: `no t= given; the ${tx.observable} horizon here is t* = ${horizon} (${tx.timeUnit})`,\n ...judged,\n };\n }\n const observableErrorAt = tx.errorAt(eps, t, at);\n const bridgeHorizonHolds = bound.horizonHolds(t, at);\n const withT = { ...judged, observableErrorAt, bridgeHorizonHolds };\n if (!bridgeHorizonHolds) {\n return { verdict: 'inadequate', reason: `past ${first.id}'s own horizon (${bound.horizon}): the bound is not claimed there`, ...withT };\n }\n const what = tx.errorKind === 'upper-bound' ? `bound on the ${tx.observable} error` : `accumulated ${tx.observable} error`;\n if (t <= horizon) {\n return { verdict: 'adequate', reason: `t = ${t} <= t* = ${horizon}: ${what} ${observableErrorAt} ${tx.unit} <= ${request.value}`, ...withT };\n }\n return tx.errorKind === 'upper-bound'\n ? {\n verdict: 'undetermined',\n reason:\n `t = ${t} > t* = ${horizon}: the ${what} is ${observableErrorAt} ${tx.unit}, above ${request.value}; ` +\n 'the error itself may still be within it, so this is not shown inadequate',\n ...withT,\n }\n : { verdict: 'inadequate', reason: `t = ${t} > t* = ${horizon}: ${what} ${observableErrorAt} ${tx.unit} exceeds ${request.value}`, ...withT };\n}\n\n/** Evidence DERIVED by running a record's witnesses now. */\nfunction runWitnesses(api: CommandCtx['api'], witnesses: readonly Witness[], checks: Translation['checks']) {\n const runs = checks.map((c) => api.runTranslationCheck(c));\n const passing = new Set(runs.filter((r) => r.status === 'checked').map((r) => r.witnessId));\n return {\n tags: [...api.deriveEvidence({ witnesses }, passing)].sort(),\n witnesses: runs.map((r) => ({\n id: r.witnessId,\n claim: witnesses.find((w) => w.id === r.witnessId)?.tolerance ?? null,\n status: r.status,\n detail: r.detail,\n })),\n };\n}\n\n/** The translation's evidence, and each carriage's, DERIVED by running their witnesses now; never the bound's. */\nfunction translationEvidence(api: CommandCtx['api'], tr: Translation, carriages: readonly Carriage[]) {\n return {\n ...runWitnesses(api, tr.witnesses, tr.checks),\n note: \"the translation's own evidence, distinct from the bound's; it carries no formal reference\",\n carriages: carriages.map((c) => ({\n bridgeId: c.bridgeId,\n observable: c.observable,\n map: c.map,\n derivation: c.derivation,\n premisesNotChecked: [...c.premises],\n timeMap: c.timeMap,\n ...runWitnesses(api, c.witnesses, c.checks),\n })),\n };\n}\n\ntype PointWitness =\n | { unavailable: string }\n | {\n id: string;\n claim: string;\n status: string;\n detail: string;\n control?: { id: string; claim: string; status: string; detail: string; discriminates: boolean };\n };\n\n/**\n * The translation's witness run at THIS point, bounded in cost, and, when\n * asked, its control: the same measurement against a plausible wrong map. A\n * control that is not refuted here shows this witness cannot tell the two\n * maps apart at this point, and is reported as such.\n */\nfunction pointWitness(api: CommandCtx['api'], tr: Translation, eps: number, withControl: boolean): PointWitness {\n const pc = tr.pointCheck(eps);\n if ('unavailable' in pc) return { unavailable: pc.unavailable };\n const r = api.runTranslationCheck(pc.check);\n const base = { id: r.witnessId, claim: pc.claim, status: r.status, detail: r.detail };\n if (!withControl) return base;\n const c = api.runTranslationCheck(pc.control);\n return {\n ...base,\n control: { id: c.witnessId, claim: pc.controlClaim, status: c.status, detail: c.detail, discriminates: c.status === 'refuted' },\n };\n}\n\n/** A judgement with its point witness; a witness refuted here withdraws any verdict to undetermined. @internal */\nexport function judgeAtPoint(\n api: CommandCtx['api'],\n request: ToleranceRequest & { observable: string },\n bridges: Bridges,\n e: Evaluation,\n at: Readonly<Record<string, number>>,\n withControl: boolean,\n): ObservableJudgement & { pointWitness: PointWitness | null } {\n const j = judgeObservable(api, request, bridges, e, at);\n if (j.translation === null || j.horizon === null || j.boundErrorAtPoint === null) return { ...j, pointWitness: null };\n const pw = pointWitness(api, j.translation, j.boundErrorAtPoint, withControl);\n if ('status' in pw && pw.status === 'refuted') {\n return {\n ...j,\n verdict: 'undetermined',\n reason: `the translation's witness at this point (${pw.id}) is refuted, so its horizon is not relied on here: ${pw.detail}`,\n pointWitness: pw,\n };\n }\n return { ...j, pointWitness: pw };\n}\n\nfunction thresholdOrigin(request: ToleranceRequest, tr: Translation, bridges: Bridges): string {\n return (\n `t* is derived from the requested tolerance ${request.value} ${tr.unit} through the translation; ` +\n `${bridges[0]!.id}'s own horizon (${bridges[0]!.bound!.horizon}) is the record's fixed threshold, judged separately`\n );\n}\n\nfunction observableReport(\n request: ToleranceRequest,\n j: ReturnType<typeof judgeAtPoint>,\n bridges: Bridges,\n evidence: ReturnType<typeof translationEvidence> | null,\n) {\n const tr = j.translation;\n return {\n observable: request.observable,\n value: request.value,\n verdict: j.verdict,\n reason: j.reason,\n ...(tr === null\n ? { translation: null }\n : {\n unit: tr.unit,\n translation: {\n bridgeId: tr.bridgeId,\n fromNorm: tr.fromNorm,\n errorKind: tr.errorKind,\n definition: tr.definition,\n derivation: tr.derivation,\n premisesNotChecked: [...tr.premises],\n timeUnit: tr.timeUnit,\n notCovered: [...tr.notCovered],\n carriedBy: j.carriages.map((c) => c.bridgeId),\n },\n boundErrorAtPoint: j.boundErrorAtPoint,\n domainSupremum: j.domainSupremum,\n observableErrorAt: j.observableErrorAt,\n horizon: j.horizon,\n domainHorizon: j.domainHorizon,\n horizonConvention: tr.boundary,\n thresholdOrigin: thresholdOrigin(request, tr, bridges),\n bridgeHorizon: { horizon: bridges[0]!.bound!.horizon, holds: j.bridgeHorizonHolds },\n evidence,\n pointWitness: j.pointWitness,\n }),\n };\n}\n\nfunction printObservable(\n out: CommandCtx['out'],\n request: ToleranceRequest,\n j: ReturnType<typeof judgeAtPoint>,\n bridges: Bridges,\n evidence: ReturnType<typeof translationEvidence> | null,\n composite: 'bound' | 'no-claim',\n): void {\n const tr = j.translation;\n out(` tolerance ${showTolerance(request, tr?.unit)}: ${j.verdict.toUpperCase()} — ${j.reason}`);\n if (tr === null) return;\n const show = (v: number | null): string => (v === null ? 'not evaluated' : String(v));\n const first = bridges[0]!;\n const kind = tr.errorKind === 'upper-bound' ? 'an UPPER BOUND on the error, not the error' : 'the error itself';\n out(` translation (${tr.bridgeId}; ${kind}): ${tr.fromNorm} → ${tr.observable}: ${tr.definition}`);\n out(` ${tr.derivation}`);\n out(` premises not machine-checked: ${tr.premises.join('; ')}`);\n for (const c of evidence?.carriages ?? []) {\n out(` carried by ${c.bridgeId} (its declared carriage of ${c.observable}): ${c.map}`);\n out(` ${c.derivation}; ${c.timeMap}`);\n out(` premises not machine-checked: ${c.premisesNotChecked.join('; ')}`);\n }\n if (j.carriages.length > 0 && composite === 'no-claim') {\n out(\n ` the composite bound is still '${NO_COMPOSITE_PHRASE}': the composition table is not consulted or widened; ` +\n `this judgement is in ${tr.observable} only, through the declared carriage`,\n );\n } else if (j.carriages.length > 0) {\n out(\n ` the composite bound above is in '${first.bound!.norm}', carried by a declared norm transport; ` +\n `this judgement is a separate claim in ${tr.observable}, through the declared carriage, and neither implies the other`,\n );\n }\n const what = tr.errorKind === 'upper-bound' ? `bound on the ${tr.observable} error` : `accumulated ${tr.observable} error`;\n out(` ${first.bound!.norm} at this point: ${show(j.boundErrorAtPoint)}; domain supremum: ${show(j.domainSupremum)}`);\n out(` ${what} at t: ${j.observableErrorAt === null ? 'not evaluated' : `${j.observableErrorAt} ${tr.unit}`}`);\n out(` ${tr.observable} horizon t* at this point: ${show(j.horizon)} (${tr.timeUnit}; ${tr.boundary})`);\n out(` ${tr.observable} horizon over the whole domain ${first.bound!.domain} (from the supremum): ${show(j.domainHorizon)}`);\n out(` threshold origin: ${thresholdOrigin(request, tr, bridges)}`);\n out(\n ` ${first.id}'s own horizon at t: ${j.bridgeHorizonHolds === null ? 'not evaluated' : j.bridgeHorizonHolds ? 'holds' : 'VIOLATED'} — ${first.bound!.horizon}`,\n );\n out(` not covered by this translation: ${tr.notCovered.join('; ')}`);\n if (evidence !== null) {\n out(` translation evidence (fixture, the regression anchor): ${evidence.tags.join(', ')} (${evidence.note})`);\n for (const w of evidence.witnesses) out(` - ${w.id} [numeric, run now; ${w.claim ?? 'no claim stated'}]: ${w.status} — ${w.detail}`);\n for (const c of evidence.carriages) {\n out(` carriage evidence (${c.bridgeId}): ${c.tags.join(', ')}`);\n for (const w of c.witnesses) out(` - ${w.id} [numeric, run now; ${w.claim ?? 'no claim stated'}]: ${w.status} — ${w.detail}`);\n }\n }\n const pw = j.pointWitness;\n if (pw === null) {\n out(' witness at this point: not run (the translation was not evaluated here)');\n } else if ('unavailable' in pw) {\n out(` witness at this point: not run — ${pw.unavailable}`);\n } else {\n out(` witness at this point: ${pw.id} [${pw.claim}]: ${pw.status} — ${pw.detail}`);\n if (pw.control !== undefined) {\n out(\n ` control ${pw.control.id} [${pw.control.claim}]: ${pw.control.status}` +\n (pw.control.discriminates\n ? ' — the check fails on the wrong map here, so it can fail'\n : ' — NOT refuted: at this point the witness cannot tell the wrong map from the declared one') +\n ` (${pw.control.detail})`,\n );\n }\n }\n}\n\ntype Evaluation = {\n allRegimesHold: boolean | 'unknown';\n horizons: readonly HorizonReport[];\n allHold: boolean;\n pointBound: { K: number; delta: number } | null;\n pointBoundReason: string | null;\n regimeCollisions: readonly { readonly group: string; readonly families: readonly string[] }[];\n};\n\ntype SweepResult = { kind: 'bound'; norm?: string | null | undefined; bound: { K: number; delta: number } } | { kind: 'no-claim'; reason: string };\n\n/** A row's status on one path: what the point command would say there, with no error where no bound is claimed. */\nfunction sweepCell(e: Evaluation, result: SweepResult) {\n const regime = e.allRegimesHold === true ? 'holds' : e.allRegimesHold === false ? 'violated' : 'unknown';\n const horizon = e.horizons.length === 0 || e.horizons[0]!.holds === null ? 'not-evaluated' : e.allHold ? 'holds' : 'violated';\n let error: number | null = e.pointBound?.delta ?? null;\n let reason = result.kind === 'no-claim' ? 'no composite claim' : e.pointBoundReason;\n if (error !== null && horizon === 'violated') {\n error = null;\n reason = 'past the horizon: the bound is not claimed there';\n }\n return { regime, horizon, error, reason };\n}\n\nfunction checkSweep(api: CommandCtx['api'], spec: string, point: Readonly<Record<string, number>>) {\n const sweep = parseSweep(api, spec);\n if (sweep.name in point) {\n throw new CliError(`upt path: '${sweep.name}' is both swept and fixed by --at; give it one role`);\n }\n return sweep;\n}\n\n/**\n * One path evaluated at every sample of one parameter. Each row is what the\n * point command would say there; no trajectory is interpolated. A row outside\n * a regime or past a horizon carries no error, because no bound is claimed\n * there, and it is not joined to its neighbours.\n */\nfunction runSweep(\n ctx: CommandCtx,\n s: {\n from: string;\n to: string;\n point: Readonly<Record<string, number>>;\n bridges: readonly AtlasBridge[];\n result: SweepResult;\n evaluateAt: (at: Readonly<Record<string, number>>) => Evaluation;\n spec: string;\n tolerance: ToleranceRequest | null;\n scope: string;\n judgeRow: (e: Evaluation, at: Readonly<Record<string, number>>, tGiven: boolean) => {\n verdict: string;\n observableErrorAt?: number | null;\n horizon?: number | null;\n pointWitness?: PointWitness | null;\n };\n translation: { tr: Translation; evidence: ReturnType<typeof translationEvidence> } | null;\n },\n): number {\n const { out, args } = ctx;\n const sweep = checkSweep(ctx.api, s.spec, s.point);\n const rows = sweep.values.map((value) => {\n const at = { ...s.point, [sweep.name]: value };\n const e = s.evaluateAt(at);\n const { regime, horizon, error, reason } = sweepCell(e, s.result);\n const judged = s.tolerance === null ? null : s.judgeRow(e, at, 't' in s.point || sweep.name === 't');\n const pw = judged?.pointWitness;\n return {\n value,\n regime,\n horizon,\n error,\n ...(error === null && reason !== null ? { reason } : {}),\n ...(judged === null ? {} : { adequacy: judged.verdict }),\n ...(judged?.horizon === undefined ? {} : { observableHorizon: judged.horizon, observableError: judged.observableErrorAt ?? null }),\n ...(pw === undefined || pw === null ? {} : { pointWitness: 'unavailable' in pw ? { status: 'not-run', reason: pw.unavailable } : { id: pw.id, status: pw.status } }),\n };\n });\n const tally = (k: 'regime' | 'horizon', v: string) => rows.filter((r) => r[k] === v).length;\n const integrated =\n s.translation === null\n ? 'nothing is integrated and no trajectory is produced'\n : `the only integration is the translation's witness, run at each judged row's point (${s.translation.tr.bridgeId}, ` +\n 'RK4, bounded); no trajectory is output';\n const evaluated =\n s.result.kind === 'bound'\n ? `the path's closed-form point bound at each sample (the exact error of the reduced model in the norm '${s.result.norm ?? 'none stated'}'); ` +\n integrated\n : `no error: the path carries no composite claim ('${s.result.reason}'); rows report regime and horizon status only` +\n (s.translation === null ? '' : `; ${integrated}`);\n const fixed = Object.entries(s.point).map(([k, v]) => `${k}=${v}`).join(' ') || 'none';\n\n if (args.flags.has('json')) {\n emitJson(\n {\n command: 'path',\n epistemics: EPISTEMICS,\n options: { from: s.from, to: s.to, at: s.point, sweep: { parameter: sweep.name, spacing: sweep.spacing, samples: rows.length } },\n result: {\n path: s.bridges.map((b) => b.id),\n kind: s.result.kind,\n ...(s.result.kind === 'bound' ? { domainSupremum: s.result.bound, norm: s.result.norm } : { reason: s.result.reason }),\n evaluated,\n ...(s.tolerance === null\n ? {}\n : s.tolerance.observable === null\n ? { tolerance: s.tolerance.value, toleranceScope: s.scope }\n : {\n tolerance: s.tolerance.value,\n toleranceObservable: s.tolerance.observable,\n ...(s.translation === null\n ? { translation: null }\n : {\n translation: {\n bridgeId: s.translation.tr.bridgeId,\n unit: s.translation.tr.unit,\n errorKind: s.translation.tr.errorKind,\n boundary: s.translation.tr.boundary,\n evidence: s.translation.evidence,\n },\n }),\n }),\n rows,\n tally: {\n inRegime: tally('regime', 'holds'),\n outsideRegime: tally('regime', 'violated'),\n regimeUnknown: tally('regime', 'unknown'),\n pastHorizon: tally('horizon', 'violated'),\n },\n },\n },\n ctx.write,\n );\n return 0;\n }\n if (args.flags.has('csv')) {\n const tol = s.tolerance !== null;\n const pwCol = s.translation !== null;\n ctx.write(`${sweep.name},regime,horizon,error,${tol ? 'adequacy,' : ''}${pwCol ? 'point_witness,' : ''}reason\\n`);\n for (const r of rows) {\n ctx.write(\n `${r.value},${r.regime},${r.horizon},${r.error ?? ''},${tol ? `${r.adequacy},` : ''}${pwCol ? `${r.pointWitness?.status ?? ''},` : ''}` +\n `\"${(r.reason ?? '').replace(/\"/g, '\"\"')}\"\\n`,\n );\n }\n return 0;\n }\n\n out(`\\nupt path ${s.from} → ${s.to} — sweep ${sweep.name} over [${sweep.values[0]}, ${sweep.values[sweep.values.length - 1]}], ${rows.length} samples (${sweep.spacing}); fixed: ${fixed}`);\n out(` path: ${s.bridges.map((b) => b.id).join(' → ')}`);\n if (s.result.kind === 'bound') out(` domain supremum: K = ${s.result.bound.K} · delta = ${s.result.bound.delta}`);\n out(` evaluated: ${evaluated}`);\n if (s.tolerance !== null && s.tolerance.observable === null) out(` tolerance: ${s.tolerance.value}, ${s.scope}`);\n if (s.tolerance !== null && s.tolerance.observable !== null) {\n const carried = s.translation?.evidence.carriages.map((c) => c.bridgeId) ?? [];\n out(\n s.translation === null\n ? ` tolerance: ${showTolerance(s.tolerance)} — no translation into '${s.tolerance.observable}' reaches the end of this path; every row is undetermined`\n : ` tolerance: ${showTolerance(s.tolerance, s.translation.tr.unit)} through ${s.translation.tr.bridgeId}'s declared translation` +\n `${carried.length > 0 ? `, carried by ${carried.join(', ')}` : ''} (${s.translation.tr.boundary}); ` +\n `translation evidence (fixture): ${s.translation.evidence.tags.join(', ')}`,\n );\n }\n const tolCol = s.tolerance === null ? '' : `${'adequacy'.padEnd(13)} `;\n const pwCol = s.translation === null ? '' : `${'point witness'.padEnd(14)} `;\n out(` ${sweep.name.padEnd(12)} ${'regime'.padEnd(10)} ${'horizon'.padEnd(14)} ${tolCol}${pwCol}error`);\n for (const r of rows) {\n const a = r.adequacy === undefined ? '' : `${r.adequacy.padEnd(13)} `;\n const w = s.translation === null ? '' : `${(r.pointWitness?.status ?? '—').padEnd(14)} `;\n out(` ${ctx.api.formatQuantity(r.value, 6).padEnd(12)} ${String(r.regime).padEnd(10)} ${String(r.horizon).padEnd(14)} ${a}${w}${r.error === null ? `— ${r.reason ?? ''}` : ctx.api.formatQuantity(r.error, 6)}`);\n }\n out(\n ` in regime: ${tally('regime', 'holds')} · outside: ${tally('regime', 'violated')} · unknown: ${tally('regime', 'unknown')} · ` +\n `past the horizon: ${tally('horizon', 'violated')} of ${rows.length}`,\n );\n out(' (a row with no error is not joined to its neighbours: no bound is claimed there. A sweep exits 0; each row is its own verdict.)');\n return 0;\n}\n\n/** One side of a `--compare` sweep: a route from the shared source and what it composes to. */\ninterface CompareSide {\n to: string;\n bridges: Bridges;\n result: SweepResult;\n evaluateAt: (at: Readonly<Record<string, number>>) => Evaluation;\n}\n\n/**\n * Two routes from one source, swept side by side over one parameter. Per row,\n * each route is `claimed` (regime and horizon hold, and a closed-form error\n * exists), `not-claimed` (a regime or horizon is violated, or the route carries\n * no composite claim) or `unsettled` (a coordinate or t was not supplied). A\n * row where every route is not-claimed is NEITHER: no encoded limit applies,\n * and it carries no number. The two errors are in their own norms and are\n * never compared with each other.\n */\nfunction runCompare(ctx: CommandCtx, from: string, point: Readonly<Record<string, number>>, spec: string, sides: readonly CompareSide[]): number {\n const { out, args } = ctx;\n const sweep = checkSweep(ctx.api, spec, point);\n const rows = sweep.values.map((value) => {\n const at = { ...point, [sweep.name]: value };\n const paths = sides.map((side) => {\n const e = side.evaluateAt(at);\n const cell = sweepCell(e, side.result);\n const state =\n cell.error !== null && cell.regime === 'holds' && cell.horizon !== 'not-evaluated'\n ? 'claimed'\n : cell.error !== null && cell.regime === 'holds' && e.horizons.length === 0\n ? 'claimed'\n : cell.regime === 'violated' || cell.horizon === 'violated' || side.result.kind === 'no-claim'\n ? 'not-claimed'\n : 'unsettled';\n return {\n to: side.to,\n regime: cell.regime,\n horizon: cell.horizon,\n state,\n error: state === 'claimed' ? cell.error : null,\n ...(state !== 'claimed' && cell.reason !== null ? { reason: cell.reason } : {}),\n ...(state === 'unsettled' && cell.error !== null ? { reason: 'no t= given, so the horizon was not evaluated' } : {}),\n };\n });\n const claimedBy = paths.filter((p) => p.state === 'claimed').map((p) => p.to);\n const coverage = claimedBy.length > 0 ? 'covered' : paths.every((p) => p.state === 'not-claimed') ? 'neither' : 'unsettled';\n return { value, paths, claimedBy, coverage };\n });\n const count = (c: string) => rows.filter((r) => r.coverage === c).length;\n const tally = {\n covered: count('covered'),\n neither: count('neither'),\n unsettled: count('unsettled'),\n claimedBy: Object.fromEntries(sides.map((sd) => [sd.to, rows.filter((r) => r.claimedBy.includes(sd.to)).length])),\n claimedByAll: rows.filter((r) => r.claimedBy.length === sides.length).length,\n };\n const evaluated =\n \"each route's closed-form point bound at each sample, in that route's OWN norm; the two errors are different \" +\n 'quantities and are not compared with each other. Nothing is integrated and no trajectory is produced';\n const neitherNote = `no encoded limit applies: the parent ${from} is the model to use there, and no reduced-model number is given`;\n const fixed = Object.entries(point).map(([k, v]) => `${k}=${v}`).join(' ') || 'none';\n\n if (args.flags.has('json')) {\n emitJson(\n {\n command: 'path',\n epistemics: EPISTEMICS,\n options: {\n from,\n to: sides.map((sd) => sd.to),\n at: point,\n sweep: { parameter: sweep.name, spacing: sweep.spacing, samples: rows.length },\n },\n result: {\n compare: sides.map((sd) => ({\n to: sd.to,\n path: sd.bridges.map((b) => b.id),\n kind: sd.result.kind,\n ...(sd.result.kind === 'bound' ? { domainSupremum: sd.result.bound, norm: sd.result.norm } : { reason: sd.result.reason }),\n })),\n evaluated,\n neither: neitherNote,\n rows,\n tally,\n },\n },\n ctx.write,\n );\n return 0;\n }\n if (args.flags.has('csv')) {\n const head = sides.flatMap((sd) => [`${sd.to}_regime`, `${sd.to}_horizon`, `${sd.to}_state`, `${sd.to}_error`]);\n ctx.write(`${sweep.name},${head.join(',')},coverage\\n`);\n for (const r of rows) {\n const cells = r.paths.flatMap((p) => [p.regime, p.horizon, p.state, p.error ?? '']);\n ctx.write(`${r.value},${cells.join(',')},${r.coverage === 'covered' ? r.claimedBy.join('+') : r.coverage}\\n`);\n }\n return 0;\n }\n\n out(\n `\\nupt path ${from} → ${sides.map((sd) => sd.to).join(' | ')} — sweep ${sweep.name} over [${sweep.values[0]}, ` +\n `${sweep.values[sweep.values.length - 1]}], ${rows.length} samples (${sweep.spacing}); fixed: ${fixed}`,\n );\n for (const sd of sides) {\n out(\n ` → ${sd.to}: ${sd.bridges.map((b) => b.id).join(' → ')}; ` +\n (sd.result.kind === 'bound' ? `norm: ${sd.result.norm ?? 'none stated'}` : `no composite claim ('${sd.result.reason}')`),\n );\n }\n out(` evaluated: ${evaluated}`);\n const heads = sides.map((sd) => `${sd.to}: regime/horizon error`);\n const w = Math.max(30, ...heads.map((h) => h.length));\n out(` ${sweep.name.padEnd(12)} ${heads.map((h) => h.padEnd(w)).join(' ')} covered by`);\n for (const r of rows) {\n const cells = r.paths.map((p) =>\n `${p.regime}/${p.horizon} ${p.error === null ? '—' : ctx.api.formatQuantity(p.error, 6)}`.padEnd(w),\n );\n const cov = r.coverage === 'covered' ? r.claimedBy.join(' + ') : r.coverage === 'neither' ? `NEITHER — ${neitherNote}` : 'UNSETTLED — a coordinate or t was not supplied';\n out(` ${ctx.api.formatQuantity(r.value, 6).padEnd(12)} ${cells.join(' ')} ${cov}`);\n }\n out(\n ` covered: ${tally.covered} (${sides.map((sd) => `${sd.to}: ${tally.claimedBy[sd.to]}`).join(', ')}; by all: ${tally.claimedByAll}) · ` +\n `NEITHER: ${tally.neither} · unsettled: ${tally.unsettled} of ${rows.length}`,\n );\n out(' (errors to 6 significant digits, --json for full precision; a row with no error is not joined to its neighbours. A sweep exits 0.)');\n return 0;\n}\n\n/** The point evaluation of one route: regimes, horizons and the proven point bound at `at`. */\nfunction makeEvaluator(api: CommandCtx['api'], bridges: Bridges, result: RouteClaim) {\n return (at: Readonly<Record<string, number>>): Evaluation & { regimes: RegimeReport[] } => {\n // A horizon is read at the END of the route: a transport applied after a\n // bound restates it on the later model's clock (ADR, time map).\n const carried = result.kind === 'bound' ? (result.transports ?? []) : [];\n const horizons: HorizonReport[] = bridges.flatMap((b, i) => {\n const h = api.horizonOnRoute(bridges, carried, i);\n if (h === null) return [];\n // A later step in another family keeps its horizon unevaluated unless a\n // transport on that step restates the clock. The earlier horizon stays\n // in the time of the model where it was stated.\n const blocked = api.familyChangeBlocksHorizon(bridges, carried, i);\n return [\n {\n bridgeId: b.id,\n horizon: h.horizon,\n holds: at['t'] === undefined || blocked ? null : h.holds(at['t'], at),\n ...(h.restatedBy.length > 0\n ? { restatedBy: h.restatedBy.map((a) => ({ transport: a.transport.id, horizon: a.transport.timeMap.horizon })) }\n : {}),\n ...(blocked ? { unevaluated: 'cross-family' as const } : {}),\n },\n ];\n });\n const allHold = horizons.every((h) => h.holds === true);\n\n // Each step is checked against its own regime. A group name whose π-groups\n // differ is dropped on every step that defines it, so the supplied number\n // is not applied to either definition. intersectRegimes is not called.\n const regimeCollisions = api.collidingRegimeGroups(bridges.map((b) => b.regime));\n const blockedGroups = new Set(regimeCollisions.map((c) => c.group));\n const regimes: RegimeReport[] = bridges.map((b) => {\n const { values } = resolveAtPoint(api, at, [b.regime]);\n for (const name of blockedGroups) delete values[name];\n const check = api.regimeHolds(b.regime, values);\n return {\n bridgeId: b.id,\n ok: check.ok,\n violated: check.violated.map(showInequality),\n unchecked: check.unchecked.map(showInequality),\n ...(b.sideConditions.length > 0 ? { premisesNotChecked: [...b.sideConditions] } : {}),\n };\n });\n const allRegimesHold: boolean | 'unknown' = regimes.some((r) => r.ok === false)\n ? false\n : regimes.some((r) => r.ok === 'unknown')\n ? 'unknown'\n : true;\n\n // The bound AT the --at point (persona finding L9). Printed only when it is\n // PROVEN: every regime holds, every step has a closed-form deltaAt (the exact\n // error), and every value is finite. It is composed by the same rule as the\n // domain supremum, by substituting each step's point value for its delta.\n let pointBound: { K: number; delta: number } | null = null;\n let pointBoundReason: string | null = null;\n if (result.kind === 'bound' && Object.keys(at).length > 0) {\n const steps = bridges.filter((b) => b.bound !== undefined);\n const numerical = steps.find((b) => b.bound!.deltaAtBasis !== 'closed-form');\n if (allRegimesHold !== true) {\n pointBoundReason = 'a regime on the path is violated or unchecked';\n } else if (steps.length === 0) {\n pointBoundReason = 'no step carries a bound';\n } else if (numerical !== undefined) {\n pointBoundReason =\n numerical.bound!.deltaAt === undefined\n ? `${numerical.id} states no point bound`\n : `${numerical.id}'s point bound is numerically supported, not proven`;\n } else {\n // A transport's K is substituted by its closed form at the point, as a\n // bound's delta is (for ab-spring-lc both are the constant 1).\n const atPoint = bridges.map((b) =>\n b.bound === undefined\n ? b.normTransports === undefined\n ? b\n : { ...b, normTransports: b.normTransports.map((nt) => ({ ...nt, K: nt.KAt(at) })) }\n : { ...b, bound: { ...b.bound, delta: b.bound.deltaAt!(at) } },\n );\n const composed = atPoint.every((b) => b.bound === undefined || Number.isFinite(b.bound.delta))\n ? api.boundPath(atPoint)\n : null;\n if (composed !== null && composed.kind === 'bound') pointBound = composed.bound;\n else pointBoundReason = 'a parameter the point bound needs was not supplied';\n }\n }\n return { regimes, allRegimesHold, horizons, allHold, pointBound, pointBoundReason, regimeCollisions };\n };\n}\n\nasync function run(ctx: CommandCtx): Promise<number> {\n const { args, api, out, err } = ctx;\n const wantJson = args.flags.has('json');\n const endpoints = args.positionals.filter((p) => !p.includes('='));\n const assignments = [...(args.flags.get('at') ?? []), ...args.positionals.filter((p) => p.includes('='))];\n\n if (endpoints.length !== 2) {\n throw new UsageError(\n `upt path: exactly two model ids are required (got ${endpoints.length}); e.g. ` +\n '`upt path model-pendulum model-spring`',\n );\n }\n const [from, to] = endpoints as [string, string];\n const atNotes: string[] = [];\n const point = parseAt(api, assignments, 'path', atNotes);\n for (const note of atNotes) err(note);\n const t = point['t'];\n\n const { bridges, fromFamily, toFamily } = selectRoute(api, from, to, 'path');\n const multi = from === to ? [] : multiPremiseBridges(api, from, to);\n\n if (bridges === null) {\n if (wantJson) {\n emitJson(\n {\n command: 'path',\n epistemics: EPISTEMICS,\n options: { from, to, at: point },\n result: { path: null, ...(multi.length === 0 ? {} : { multiPremise: multi }) },\n },\n ctx.write,\n );\n return 0;\n }\n out(`\\nupt path ${from} → ${to}`);\n out(' no chain of bridges connects these models; there is nothing to compose.');\n printMultiPremise(out, multi);\n return 0;\n }\n\n const labels = routeFamilyLabels(api, bridges, from);\n\n if (bridges.length === 0) {\n if (wantJson) {\n emitJson(\n {\n command: 'path',\n epistemics: EPISTEMICS,\n options: { from, to, at: point },\n result: { path: [], crossFamily: labels.crossFamily, modelFamilies: labels.modelFamilies },\n },\n ctx.write,\n );\n return 0;\n }\n out(`\\nupt path ${from} → ${to}`);\n out(' the endpoints are the same model: the path is empty and composes nothing.');\n return 0;\n }\n\n const result = routeClaim(api, bridges);\n const missing = explainsRefusal(result) ? missingForComposite(api, bridges) : [];\n\n const evaluateAt = makeEvaluator(api, bridges, result);\n const tolValues = args.flags.get('tolerance');\n const tolerance = parseTolerance(api, tolValues === undefined ? undefined : tolValues[tolValues.length - 1]);\n const scope = toleranceScope(api, bridges);\n const found = tolerance?.observable == null ? null : pathTranslation(api, bridges, tolerance.observable);\n const translation = found?.tr ?? undefined;\n const carriages = found !== null && found.tr !== null ? found.carriages : [];\n const sweepSpec = args.flags.get('sweep');\n const compareTo = args.flags.get('compare');\n if (compareTo !== undefined && compareTo.length > 0) {\n if (sweepSpec === undefined || sweepSpec.length === 0) {\n throw new CliError('upt path: --compare needs --sweep (two routes are compared row by row over a sweep)');\n }\n if (tolerance !== null) {\n throw new CliError('upt path: --compare does not take --tolerance: judge each route on its own, since their errors are in different norms');\n }\n const to2 = compareTo[compareTo.length - 1]!;\n if (to2 === to) throw new CliError(`upt path: --compare=${to2} is the same target as the path; name a different model`);\n const other = selectRoute(api, from, to2, 'path').bridges;\n if (other === null || other.length === 0) {\n throw new CliError(\n `upt path: --compare=${to2}: ${other === null ? `no chain of bridges connects ${from} to ${to2}` : 'the endpoints are the same model'}; there is nothing to compare`,\n );\n }\n const otherResult = routeClaim(api, other);\n return runCompare(ctx, from, point, sweepSpec[sweepSpec.length - 1]!, [\n { to, bridges, result, evaluateAt },\n { to: to2, bridges: other, result: otherResult, evaluateAt: makeEvaluator(api, other, otherResult) },\n ]);\n }\n if (sweepSpec !== undefined && sweepSpec.length > 0) {\n return runSweep(ctx, {\n from,\n to,\n point,\n bridges,\n result,\n evaluateAt,\n spec: sweepSpec[sweepSpec.length - 1]!,\n tolerance,\n scope,\n judgeRow: (e, at, tGiven) =>\n tolerance === null || tolerance.observable === null\n ? judgeTolerance(tolerance?.value ?? 0, e, tGiven)\n : judgeAtPoint(api, { ...tolerance, observable: tolerance.observable }, bridges, e, at, false),\n translation: translation === undefined ? null : { tr: translation, evidence: translationEvidence(api, translation, carriages) },\n });\n }\n if (args.flags.has('csv')) throw new CliError('upt path: --csv needs --sweep (a single point is not a table)');\n\n const evaluation = evaluateAt(point);\n const { regimes, allRegimesHold, horizons, allHold, pointBound, pointBoundReason, regimeCollisions } = evaluation;\n const adequacy =\n tolerance === null || tolerance.observable !== null ? null : judgeTolerance(tolerance.value, evaluation, t !== undefined);\n const observed =\n tolerance === null || tolerance.observable === null\n ? null\n : judgeAtPoint(api, { ...tolerance, observable: tolerance.observable }, bridges, evaluation, point, true);\n const evidence = translation === undefined ? null : translationEvidence(api, translation, carriages);\n\n // A violated regime or horizon is a failed check: exit 3 (persona finding F2),\n // and so is a tolerance the point error exceeds. UNKNOWN, where a coordinate\n // or t was not supplied, is not a failure.\n const horizonViolated = t !== undefined && horizons.some((h) => h.holds === false);\n // The domain supremum is the route's answer only while the point check has\n // not withdrawn it. A violated regime or horizon is not a claim, so neither\n // text nor JSON carries a bound number.\n const claimWithdrawn = allRegimesHold === false || horizonViolated;\n const withdrawnReason = allRegimesHold === false\n ? (pointBoundReason ?? 'a regime on the path is violated or unchecked')\n : 'past the horizon, no bound is claimed at this point';\n const exitCode =\n allRegimesHold === false ||\n horizonViolated ||\n adequacy?.verdict === 'inadequate' ||\n observed?.verdict === 'inadequate'\n ? EXIT_CHECK_FAILED\n : 0;\n\n if (wantJson) {\n emitJson(\n {\n command: 'path',\n epistemics: EPISTEMICS,\n options: { from, to, at: point },\n result: {\n families: { from: fromFamily, to: toFamily },\n crossFamily: labels.crossFamily,\n modelFamilies: labels.modelFamilies,\n path: labels.steps,\n // A no-claim has no `bound` key at all — the type refuses it, and so\n // does this envelope.\n ...(result.kind === 'bound'\n ? {\n kind: 'bound',\n relation: result.relation,\n ...(claimWithdrawn ? {} : { bound: result.bound }),\n norm: result.norm,\n terminal: result.terminal,\n ...(result.transports === undefined ? {} : { transports: result.transports.map(transportReport) }),\n }\n : {\n kind: 'no-claim',\n reason: result.reason,\n detail: result.detail,\n phrase: NO_COMPOSITE_PHRASE,\n ...(missing.length > 0 ? { missing } : {}),\n }),\n regimes,\n allRegimesHold,\n pointBound: claimWithdrawn ? null : pointBound,\n ...((claimWithdrawn ? withdrawnReason : pointBoundReason) !== null\n ? { pointBoundReason: claimWithdrawn ? withdrawnReason : pointBoundReason }\n : {}),\n horizons,\n ...(multi.length === 0 ? {} : { multiPremise: multi }),\n ...(regimeCollisions.length === 0 ? {} : { regimeCollisions }),\n horizonsEvaluated: t !== undefined,\n allHorizonsHold:\n t === undefined || horizons.some((h) => h.holds === null) ? (horizonViolated ? false : null) : allHold,\n ...(adequacy === null ? {} : { tolerance: { value: tolerance!.value, ...adequacy, scope } }),\n ...(observed === null ? {} : { tolerance: observableReport(tolerance!, observed, bridges, evidence) }),\n },\n },\n ctx.write,\n );\n return exitCode;\n }\n\n out(`\\nupt path ${from} → ${to}`);\n out(` ${bridges.length} bridge(s):`);\n for (const b of bridges) out(` ${b.premises[0]} --[${b.relation}]--> ${b.conclusion} (${b.id})`);\n printMultiPremise(out, multi);\n if (labels.crossFamily) {\n out(` crosses families: ${labels.modelFamilies.join(' → ')}`);\n }\n out('');\n if (result.kind === 'bound') {\n out(` composite relation: ${result.relation}`);\n if (claimWithdrawn) {\n out(' composed bound: none — no bound is claimed at this point');\n } else {\n out(` composed bound: K = ${result.bound.K} · delta = ${result.bound.delta}`);\n }\n out(` norm: ${result.norm ?? '(none stated — the claim is the vacuous identity)'}`);\n if (result.terminal) out(' terminal: the last step states no Lipschitz constant; the claim ends there');\n for (const a of result.transports ?? []) {\n const nt = a.transport;\n out(` why the bound crosses '${a.bridgeId}' (exact): it declares the norm transport '${nt.id}'`);\n out(` ${nt.fromModel} → ${nt.toModel}: '${nt.from}' → '${nt.to}', K = ${nt.K} (${nt.domain})`);\n out(` because: ${nt.derivation}`);\n out(` time map: ${nt.timeMap.map} (uniform)`);\n out(` horizon: ${nt.timeMap.horizon}`);\n out(\n ` witness: ${nt.witness.id} (${nt.witness.kind}; ${nt.basis} when it checks, never formally proved) — ` +\n `\\`upt map --route=${from},${to} --run\\` runs it`,\n );\n out(' no other norm or direction through this map is declared, and each stays refused');\n }\n if (!claimWithdrawn && pointBound !== null) {\n out(\n ` bound at this point: K = ${pointBound.K} · delta = ${pointBound.delta} (closed-form: the exact error; ` +\n \"the composed bound above is the supremum over the bridge's domain)\",\n );\n } else if ((claimWithdrawn ? withdrawnReason : pointBoundReason) !== null) {\n out(` bound at this point: none — ${claimWithdrawn ? withdrawnReason : pointBoundReason}`);\n }\n } else {\n out(` composite relation: ${NO_COMPOSITE_PHRASE}`);\n out(` bound: ${NO_COMPOSITE_PHRASE} — reason '${result.reason}'`);\n out(` ${result.detail}`);\n if (missing.length > 0) {\n out(' to compose, this path would need:');\n for (const m of missing) out(` - ${m}`);\n }\n }\n out('');\n if (allRegimesHold === false) {\n out(' regimes at --at: VIOLATED — no bound on this path is claimed at this point');\n } else if (allRegimesHold === 'unknown') {\n out(' regimes at --at: UNKNOWN (a coordinate was not supplied); an unchecked regime is not a passing one');\n } else if (bridges.every((b) => b.regime.inequalities.length === 0)) {\n out(' regimes: VACUOUS — no bridge on this path states an inequality; nothing was checked');\n } else {\n out(' regimes at --at: all hold');\n }\n for (const r of regimes) {\n if (r.ok === false) out(` ${r.bridgeId}: VIOLATED — ${r.violated.join('; ')}`);\n else if (r.ok === 'unknown') out(` ${r.bridgeId}: unknown — unchecked: ${r.unchecked.join('; ')}`);\n }\n if (regimeCollisions.length > 0) {\n out(' regime group names collide (unchecked on each step that defines them):');\n for (const c of regimeCollisions) out(` ${c.group}: ${c.families.join(', ')}`);\n }\n if (regimes.some((r) => r.premisesNotChecked !== undefined)) {\n out(' premises not machine-checked (your judgment or measurement):');\n for (const r of regimes) {\n if (r.premisesNotChecked !== undefined) out(` ${r.bridgeId}: ${r.premisesNotChecked.join('; ')}`);\n }\n }\n if (horizons.length === 0) {\n out(' horizons: none on this path (no step carries a bound)');\n } else if (t === undefined) {\n out(' horizons: NOT EVALUATED (no t= supplied via --at); an unevaluated horizon is not a passing one');\n for (const h of horizons) {\n out(` ${h.bridgeId}: ${h.horizon}`);\n for (const r of h.restatedBy ?? []) out(` restated by '${r.transport}': ${r.horizon}`);\n }\n } else if (horizons.some((h) => h.unevaluated === 'cross-family') && !horizonViolated) {\n out(` horizons at t=${t}: NOT EVALUATED — a family change does not restate a horizon onto the next clock`);\n for (const h of horizons) {\n const state = h.holds === null ? 'unevaluated' : h.holds ? 'holds' : 'VIOLATED';\n out(` ${h.bridgeId}: ${state} — ${h.horizon}`);\n for (const r of h.restatedBy ?? []) out(` restated by '${r.transport}': ${r.horizon}`);\n }\n } else {\n out(` horizons at t=${t}: ${allHold ? 'all hold' : 'NOT all hold'}`);\n for (const h of horizons) {\n const state = h.holds === null ? 'unevaluated' : h.holds ? 'holds' : 'VIOLATED';\n out(` ${h.bridgeId}: ${state} — ${h.horizon}`);\n for (const r of h.restatedBy ?? []) out(` restated by '${r.transport}': ${r.horizon}`);\n }\n }\n if (adequacy !== null) {\n out(` tolerance ${tolerance!.value}: ${adequacy.verdict.toUpperCase()} — ${adequacy.reason}`);\n out(` (${scope})`);\n }\n if (observed !== null) printObservable(out, tolerance!, observed, bridges, evidence, result.kind);\n out(` (${EPISTEMICS})`);\n return exitCode;\n}\n\nexport const command: Command = {\n name: 'path',\n aliases: [],\n flags: FLAGS,\n help: commandHelp(HELP, FLAGS),\n summary: 'Show the bridge chain between two models and whether a bound is claimed there.',\n example: 'upt path model-pendulum model-spring --at theta0=0.2 T0=1 t=10',\n group: 'explore',\n run,\n};\nregisterCommand(command);\n"]}
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../../src/cli/commands/path.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * `upt path` — the route between two models of a family, and what that route\n * actually WARRANTS.\n *\n * Two answers, kept apart on purpose, because `atlas/path-bound.ts` keeps them\n * apart: `findPath` says a chain of bridges exists, and that says nothing about\n * whether the chain supports a claim. `boundPath` says what it supports, and\n * its answer is a DISCRIMINATED UNION whose `'no-claim'` member carries no\n * number at all. This command never prints a bound for a no-claim, and never\n * synthesizes one — a precise-looking composed number over an undefined\n * composite is the most dangerous thing this tool could emit.\n *\n * A no-claim is an ANSWER, not an error: `upt path` exits 0 when the\n * composition table declines to compose. The refusal is the result.\n *\n * Horizons are evaluated only when `--at` supplies a `t`. An unevaluated\n * horizon is reported as unevaluated, on the same rule that makes\n * `regimeHolds` tri-state.\n *\n * The REGIME of every bridge on the path is checked at the `--at` point too.\n * A bound is claimed only inside its bridge's regime, so a horizon that holds\n * says nothing when the point is outside the regime: this command once printed\n * the pendulum bound and \"all hold\" at θ0 = 0.8, where the bound's own regime\n * is θ0 ≤ 0.5 and the true error is 2.6 times the bound. An unchecked regime\n * is reported as unknown, never as a pass.\n */\nimport type { FlagSpec } from '../args.js';\nimport { registerCommand, type Command, type CommandCtx } from '../command.js';\nimport { commandHelp, JSON_FLAG } from '../flag-help.js';\nimport { CliError, EXIT_CHECK_FAILED, UsageError } from '../errors.js';\nimport { emitJson } from '../output.js';\nimport { integerFlag } from '../numeric-flag.js';\nimport { parseAt, resolveAtPoint, showInequality } from './regime.js';\nimport { explainsRefusal, missingForComposite, routeClaim, selectRoute, transportReport, type RouteClaim } from './_atlas-route.js';\n\nconst FLAGS: FlagSpec[] = [\n {\n name: '--at',\n valueStyle: 'either',\n repeatable: true,\n description: 'State one regime coordinate as group=value. A value may be an expression such as pi/2.',\n },\n {\n name: '--sweep',\n valueStyle: 'either',\n description: 'Sample one coordinate as name=lo:hi:n or name=lo:hi:n:log, with n from 2 to 200.',\n },\n {\n name: '--compare',\n valueStyle: 'either',\n description: 'Sweep a second route from the same source to this model id and mark NEITHER where no limit applies.',\n },\n { name: '--csv', valueStyle: 'none', description: 'Write sweep rows as CSV.' },\n {\n name: '--tolerance',\n valueStyle: 'attached',\n description: 'Judge adequacy against EPS in the bound\\'s norm, or name:EPS through a declared translation. Exit 3 when inadequate.',\n },\n JSON_FLAG,\n];\n\nconst HELP = `upt path <from> <to> [--at group=value ...] [--tolerance=[observable:]EPS]\n [--sweep name=lo:hi:n[:log]] [--compare=<to2>] [--csv] [--json]\n The chain of bridges from one model to another (across families when\n a bridge ends in another family's model), the relation the chain\n composes to, the composed (K, delta) with the norm it holds in,\n whether every bridge's REGIME holds at --at (the bound is claimed only\n inside it), and whether every horizon still holds (pass t=<time> plus\n the parameters, e.g. --at theta0=0.2 T0=1 t=10).\n When the composition table declines to compose the relations, the path\n carries NO bound: the command prints 'no composite claim' and exits 0.\n That refusal is the answer, and no number is invented in its place.\n An exact equivalence carries a bound only in a norm it DECLARES a\n transport of, in the declared direction, with a witness (ab-spring-lc:\n relative period error, spring → lc; the horizon is restated on the\n circuit clock). Any other norm or direction is refused as\n 'norm-not-stated', and the refusal names the missing declaration.\n --at values are numbers, units, or constant expressions (theta0=pi/2).\n T, temperature, temp, and T_K are kelvin: an energy on that name is k_B T.\n A sweep of one of those names reads its endpoints the same way.\n A regime or horizon that was checked and failed prints no bound\n number: the domain supremum is not a claim at that point.\n --sweep name=lo:hi:n[:log] evaluates the path at n samples (2 to 200,\n endpoints included) of one parameter not fixed by --at: per row the\n regime, the horizon and the closed-form point error. A row outside a\n regime or past a horizon carries no error, because no bound is claimed\n there. A sweep exits 0: each row is its own verdict. --csv writes the\n rows as CSV.\n --compare=<to2> (with --sweep) sweeps a second route from the same\n source beside the first: per row each route's regime, horizon and\n error in its OWN norm (never compared with the other's), and NEITHER,\n with no number, where no encoded limit applies.\n --tolerance=EPS asks whether the path is accurate enough: ADEQUATE only\n when every regime holds, every horizon holds at the given t, and the\n closed-form point error is <= EPS; INADEQUATE (exit 3) when any of\n them fails; UNDETERMINED when the point does not settle it. EPS is in\n the bound's own norm. With --sweep, each row is judged.\n --tolerance=<observable>:EPS asks in ANOTHER observable, only through\n a translation the first bridge declares (ab-pendulum-linear: phase, the\n exact accumulated error, and position, an upper bound on |θ − θ_lin|;\n both in rad, t in the unit of T0), carried past each later bridge only\n by that bridge's declared carriage (ab-spring-lc carries phase). It\n reports the horizon t* at which the error reaches EPS, ADEQUATE iff\n t <= t* (inclusive; past t* an upper bound is UNDETERMINED, not\n INADEQUATE), and the evidence of the translation and of each carriage,\n derived by running their witnesses, plus the translation's witness\n run at this point with a control. Otherwise it is UNDETERMINED.\n A route may cross families. A bound crosses only through the relation,\n uniformity, Lipschitz, and norm gates, and, across families, only\n through a witnessed norm transport; a matching norm name is not one\n (reason cross-family-unmapped, still exit 0).\n A bridge with two or more premises is named when both models appear\n among its premises and its conclusion. That line is the bridge; it is\n not a step of the chain, and a missing chain still exits 0.\n e.g. upt path model-pendulum model-spring --at theta0=0.2 T0=1 t=10\n upt path model-pendulum model-spring --at T0=1 t=10 --sweep theta0=0.1:0.8:8\n upt path model-pendulum model-lc --at theta0=0.3 T0=2 t=5 --tolerance=phase:0.1\n upt path model-telegraph model-fick --compare=model-wave-1d --at D=1 q=1 t=1 --sweep tau=0.001:1000:13:log`;\n\nconst EPISTEMICS =\n 'a path EXISTING is not a warrant: the bound is the warrant. A no-claim carries no number, ' +\n 'and none is synthesized for it.';\n\ninterface MultiPremise {\n readonly id: string;\n readonly premises: readonly string[];\n readonly conclusion: string;\n}\n\n/** Bridges with two or more premises that mention both endpoints. Not a chain. */\nfunction multiPremiseBridges(api: CommandCtx['api'], from: string, to: string): MultiPremise[] {\n const rows: MultiPremise[] = [];\n const seen = new Set<string>();\n for (const f of api.ATLAS_FAMILIES) {\n for (const b of f.bridges) {\n if (b.premises.length < 2 || seen.has(b.id)) continue;\n const ends = new Set([...b.premises, b.conclusion]);\n if (!ends.has(from) || !ends.has(to)) continue;\n seen.add(b.id);\n rows.push({ id: b.id, premises: [...b.premises], conclusion: b.conclusion });\n }\n }\n return rows;\n}\n\nfunction printMultiPremise(out: CommandCtx['out'], rows: readonly MultiPremise[]): void {\n for (const b of rows) {\n out(` multi-premise bridge: ${b.id}: ${b.premises.join(' + ')} → ${b.conclusion}`);\n }\n if (rows.length > 0) {\n out(' A path composes one premise at a time. This bridge needs every premise named above.');\n }\n}\n\n/** The literal phrase the no-composite-claim case must print. */\nconst NO_COMPOSITE_PHRASE = 'no composite claim';\n\ninterface RegimeReport {\n bridgeId: string;\n ok: boolean | 'unknown';\n violated: string[];\n unchecked: string[];\n /** The bridge's prose side conditions: stated, never evaluated here. */\n premisesNotChecked?: string[];\n}\n\ninterface HorizonReport {\n bridgeId: string;\n horizon: string;\n holds: boolean | null;\n /** The transports that restated this horizon for the end of the route; absent when none did. */\n restatedBy?: { transport: string; horizon: string }[];\n /** Set when a family change reached this step with no time map. Unevaluated, not violated. */\n unevaluated?: 'cross-family';\n}\n\nconst MAX_SAMPLES = 200;\n\n/** `name=lo:hi:n` or `name=lo:hi:n:log`, bounded; the endpoints are both sampled. */\nexport function parseSweep(\n api: CommandCtx['api'],\n spec: string,\n): { name: string; values: number[]; spacing: 'linear' | 'log' } {\n const m = /^([^=\\s]+)=([^:]+):([^:]+):([^:]+)(?::(linear|log))?$/.exec(spec);\n if (m === null) throw new CliError(`upt path: --sweep '${spec}' is not name=lo:hi:n[:log], e.g. --sweep theta0=0.05:0.9:18`);\n const [, name, loS, hiS, nS, sp] = m as unknown as [string, string, string, string, string, string | undefined];\n const endpoint = (raw: string): number => {\n try {\n const read = api.readNamedBinding(name, raw);\n return Number.isFinite(read.value) ? read.value : Number.NaN;\n } catch (e) {\n if (e instanceof api.UnitError) {\n throw new CliError(`upt path: --sweep '${spec}' is not a temperature. ${e.message}`);\n }\n return Number.NaN;\n }\n };\n const lo = endpoint(loS);\n const hi = endpoint(hiS);\n // The grammar first (`0x5` is usage, exit 2); the 2..MAX_SAMPLES range after (exit 1).\n const n = integerFlag('path', '--sweep sample count', nS);\n const spacing = sp === 'log' ? 'log' : 'linear';\n if (!Number.isFinite(lo) || !Number.isFinite(hi) || !(lo < hi)) {\n throw new CliError(`upt path: --sweep '${spec}' needs finite lo < hi`);\n }\n if (!Number.isInteger(n) || n < 2 || n > MAX_SAMPLES) {\n throw new CliError(`upt path: --sweep '${spec}' needs an integer sample count from 2 to ${MAX_SAMPLES}`);\n }\n if (spacing === 'log' && lo <= 0) throw new CliError(`upt path: --sweep '${spec}' is log-spaced, so lo must be > 0`);\n const values = Array.from({ length: n }, (_, i) =>\n spacing === 'log' ? lo * (hi / lo) ** (i / (n - 1)) : lo + ((hi - lo) * i) / (n - 1),\n );\n return { name, values, spacing };\n}\n\n// `readonly` directly before `import('…').T` is a tree-sitter ERROR node. Alias\n// the import type first; the array is still readonly.\ntype AtlasBridge = import('../../cli-api.js').AtlasBridge;\ntype Witness = import('../../cli-api.js').Witness;\ntype Bridges = readonly AtlasBridge[];\ntype Translation = import('../../cli-api.js').ObservableTranslation;\ntype Carriage = import('../../cli-api.js').ObservableCarriage;\n\n/**\n * A translation declared on a bridge that states no bound. A translation restates the bound's\n * error in another observable, so it presupposes the bound; a bridge without one declaring a\n * translation is a defect of the atlas record, not a user error, and this is not a `CliError`.\n */\nexport class TranslationWithoutBoundError extends Error {\n constructor(bridgeId: string, observable: string) {\n super(\n `upt path: '${bridgeId}' declares a translation to ${observable} but states no bound; ` +\n 'a translation presupposes the bound it translates (a defect of the record, not a usage error)',\n );\n this.name = 'TranslationWithoutBoundError';\n }\n}\n\n/** The first bridge's bound, which the translation `tr` presupposes. @internal */\nexport function translatedBound(bridges: Bridges, tr: Translation): NonNullable<AtlasBridge['bound']> {\n const first = bridges[0]!;\n if (first.bound === undefined) throw new TranslationWithoutBoundError(first.id, tr.observable);\n return first.bound;\n}\n\nfunction modelFamilyOf(api: CommandCtx['api'], id: string | null): string | undefined {\n if (id === null) return undefined;\n return api.ATLAS_FAMILIES.find((f) => f.models.some((m) => m.id === id))?.family;\n}\n\nfunction filingFamilyOf(api: CommandCtx['api'], id: string): string | undefined {\n return api.ATLAS_FAMILIES.find((f) => f.bridges.some((b) => b.id === id))?.family;\n}\n\n/** The model a step leaves, entered at `entry`. An exact step may leave by either end. */\nfunction leaveModel(bridge: AtlasBridge, entry: string): string | null {\n if (bridge.premises.length !== 1) return null;\n const premise = bridge.premises[0]!;\n if (entry === premise) return bridge.conclusion;\n if (bridge.relation === 'exact-equivalence' && entry === bridge.conclusion) return premise;\n return null;\n}\n\ninterface PathStepLabel {\n readonly id: string;\n readonly relation: AtlasBridge['relation'];\n readonly from: string | undefined;\n readonly to: string;\n readonly family: string | undefined;\n readonly fromModelFamily: string | undefined;\n readonly toModelFamily: string | undefined;\n}\n\n/**\n * Families of the models a route visits, in order, starting at `from`.\n * Adjacent duplicates collapse. A family visited again after a different one\n * stays in the list. `family` on each step stays the filing family.\n */\nfunction routeFamilyLabels(\n api: CommandCtx['api'],\n bridges: readonly AtlasBridge[],\n from: string,\n): {\n readonly crossFamily: boolean;\n readonly modelFamilies: readonly string[];\n readonly steps: readonly PathStepLabel[];\n} {\n const modelFamilies: string[] = [];\n const push = (id: string | null): string | undefined => {\n const family = modelFamilyOf(api, id);\n if (family !== undefined && modelFamilies[modelFamilies.length - 1] !== family) modelFamilies.push(family);\n return family;\n };\n if (bridges.length === 0) {\n push(from);\n return { crossFamily: false, modelFamilies, steps: [] };\n }\n let at: string | null = from;\n const steps = bridges.map((b) => {\n const entry = at;\n const exit = entry === null ? null : leaveModel(b, entry);\n const fromModelFamily = modelFamilies.length === 0 ? push(entry) : modelFamilyOf(api, entry);\n const toModelFamily = push(exit);\n at = exit;\n return {\n id: b.id,\n relation: b.relation,\n from: b.premises[0],\n to: b.conclusion,\n family: filingFamilyOf(api, b.id),\n fromModelFamily,\n toModelFamily,\n };\n });\n return { crossFamily: modelFamilies.length > 1, modelFamilies, steps };\n}\n\n/**\n * The translation a path can use for `observable`: the first bridge's, carried\n * through every later bridge only by that bridge's declared carriage of the\n * same observable. A later bridge without one stops it, whatever its relation.\n */\nfunction pathTranslation(\n api: CommandCtx['api'],\n bridges: Bridges,\n observable: string,\n): { tr: Translation; carriages: Carriage[] } | { tr: null; blockedBy: string | null } {\n const tr = api.translationsOf(bridges[0]!.id).find((x) => x.observable === observable);\n if (tr === undefined) return { tr: null, blockedBy: null };\n const carriages: Carriage[] = [];\n for (const b of bridges.slice(1)) {\n const c = api.carriageOf(b.id, observable);\n if (c === undefined) return { tr: null, blockedBy: b.id };\n carriages.push(c);\n }\n return { tr, carriages };\n}\n\n/** The observables a path can be asked in: its first bridge's translations that every later bridge carries. */\nfunction pathObservables(api: CommandCtx['api'], bridges: Bridges): Translation[] {\n return api\n .translationsOf(bridges[0]!.id)\n .filter((t) => pathTranslation(api, bridges, t.observable).tr !== null);\n}\n\n/** What a tolerance in the bound's own norm is judged in, and what else this path can be asked in. */\nfunction toleranceScope(api: CommandCtx['api'], bridges: Bridges): string {\n const declared = pathObservables(api, bridges);\n if (declared.length === 0) {\n return \"judged in the bound's own norm only; no translation to another observable (phase, trajectory, amplitude) is encoded for this path\";\n }\n const asks = declared.map((t) => `--tolerance=${t.observable}:EPS (${t.unit})`).join(', ');\n const through = bridges.length > 1 ? `, carried by ${bridges.slice(1).map((b) => b.id).join(', ')}` : '';\n return `judged in the bound's own norm only; ${bridges[0]!.id} declares a translation${through}, asked with ${asks}`;\n}\n\n/**\n * Whether the path is adequate for a requested tolerance at one point: every\n * regime holds, every horizon holds at the given t, and the closed-form point\n * error is within it. Anything the point does not settle is `undetermined`,\n * never `adequate`.\n * @internal\n */\nexport function judgeTolerance(\n tolerance: number,\n e: Evaluation,\n tGiven: boolean,\n): { verdict: 'adequate' | 'inadequate' | 'undetermined'; reason: string } {\n if (e.allRegimesHold === false) return { verdict: 'inadequate', reason: 'outside a regime on the path: no bound is claimed' };\n if (e.allRegimesHold === 'unknown') return { verdict: 'undetermined', reason: 'a regime coordinate was not supplied' };\n if (e.horizons.length > 0 && !tGiven) return { verdict: 'undetermined', reason: 'no t= given, so the horizon was not evaluated' };\n if (e.horizons.some((h) => h.holds === false)) return { verdict: 'inadequate', reason: 'past the horizon: the bound is not claimed there' };\n if (e.horizons.some((h) => h.holds === null)) {\n return { verdict: 'undetermined', reason: 'a family change did not restate a horizon onto the next clock' };\n }\n if (e.horizons.length > 0 && !e.allHold) return { verdict: 'inadequate', reason: 'past the horizon: the bound is not claimed there' };\n if (e.pointBound === null) return { verdict: 'undetermined', reason: e.pointBoundReason ?? 'no point bound' };\n return e.pointBound.delta <= tolerance\n ? { verdict: 'adequate', reason: `error ${e.pointBound.delta} <= tolerance ${tolerance}` }\n : { verdict: 'inadequate', reason: `error ${e.pointBound.delta} exceeds tolerance ${tolerance}` };\n}\n\n/** `EPS` in the bound's own norm (`observable: null`), or `<observable>:EPS`. */\nexport interface ToleranceRequest {\n observable: string | null;\n value: number;\n}\n\n/** Read a `--tolerance` argument as `EPS` or `<observable>:EPS`. Returns null when the flag is absent, and throws a {@link CliError} when it is present and malformed. */\nexport function parseTolerance(api: CommandCtx['api'], raw: string | undefined): ToleranceRequest | null {\n if (raw === undefined) return null;\n const colon = raw.indexOf(':');\n const observable = colon === -1 ? null : raw.slice(0, colon);\n const number = colon === -1 ? raw : raw.slice(colon + 1);\n if (observable !== null && !/^[a-z][a-z-]*$/.test(observable)) {\n throw new CliError(`upt path: --tolerance=${raw} is not EPS or <observable>:EPS, e.g. --tolerance=phase:0.1`);\n }\n let v = Number.NaN;\n try {\n if (number !== '') v = api.readBinding(number).value;\n } catch {\n v = Number.NaN;\n }\n if (number === '' || !Number.isFinite(v) || v <= 0) throw new CliError(`upt path: --tolerance=${raw} must be a finite number > 0`);\n return { observable, value: v };\n}\n\nconst showTolerance = (r: ToleranceRequest, unit?: string): string =>\n r.observable === null ? String(r.value) : `${r.observable}:${r.value}${unit === undefined ? '' : ` ${unit}`}`;\n\n/** A tolerance in another observable, judged through the path's declared translation. */\ninterface ObservableJudgement {\n verdict: 'adequate' | 'inadequate' | 'undetermined';\n reason: string;\n translation: Translation | null;\n /** The later bridges' declared carriages of the observable, in path order. */\n carriages: Carriage[];\n /** The translated bridge's quantity at this point, in its bound's norm. */\n boundErrorAtPoint: number | null;\n /** The translated bridge's supremum over its domain, in the same norm. */\n domainSupremum: number | null;\n /** The accumulated error in the observable at the given t (an upper bound when the translation is one). */\n observableErrorAt: number | null;\n /** t*: where the accumulated error reaches the tolerance at this point. */\n horizon: number | null;\n /** t* from the domain supremum: the shortest over the bridge's domain. */\n domainHorizon: number | null;\n /** The translated bridge's own horizon at t; `null` when t was not given. */\n bridgeHorizonHolds: boolean | null;\n}\n\n/**\n * Whether the path is adequate for a tolerance in another observable. Only a\n * path whose first bridge declares a translation into that observable, and\n * whose every later bridge declares that it carries it, is judged; every\n * regime, the translated bridge's closed-form point value and its own horizon\n * still gate it, and anything the point does not settle is `undetermined`. An\n * upper-bound translation past its horizon is `undetermined` too: there the\n * BOUND exceeds the tolerance, which does not show that the error does.\n * @internal\n */\nexport function judgeObservable(\n api: CommandCtx['api'],\n request: ToleranceRequest & { observable: string },\n bridges: Bridges,\n e: Evaluation,\n at: Readonly<Record<string, number>>,\n): ObservableJudgement {\n const found = pathTranslation(api, bridges, request.observable);\n const tr = found.tr;\n const first = bridges[0]!;\n const bound = first.bound;\n const pointValue =\n e.allRegimesHold === true && bound?.deltaAt !== undefined && bound.deltaAtBasis === 'closed-form' ? bound.deltaAt(at) : null;\n const none = {\n translation: tr,\n carriages: found.tr === null ? [] : found.carriages,\n boundErrorAtPoint: pointValue !== null && Number.isFinite(pointValue) ? pointValue : null,\n domainSupremum: tr === null ? (bridges.length === 1 ? (bound?.delta ?? null) : null) : (bound?.delta ?? null),\n observableErrorAt: null,\n horizon: null,\n domainHorizon: null,\n bridgeHorizonHolds: null,\n };\n if (found.tr === null) {\n const declared = api.translationsOf(first.id);\n const reason =\n found.blockedBy !== null\n ? `${first.id}'s translation into '${request.observable}' does not reach the end of this path: '${found.blockedBy}' ` +\n `declares no carriage of '${request.observable}' through its map, and a translation composes only through one`\n : `no translation from '${bound?.norm ?? 'no bound'}' into '${request.observable}' is encoded for ${first.id}` +\n (declared.length === 0 ? '' : ` (it declares: ${declared.map((x) => x.observable).join(', ')})`);\n return { verdict: 'undetermined', reason, ...none };\n }\n if (e.allRegimesHold === false) return { verdict: 'inadequate', reason: 'outside a regime on the path: no bound is claimed', ...none };\n if (e.allRegimesHold === 'unknown') return { verdict: 'undetermined', reason: 'a regime coordinate was not supplied', ...none };\n if (bound === undefined || bound.deltaAt === undefined || bound.deltaAtBasis !== 'closed-form') {\n return { verdict: 'undetermined', reason: `${first.id} states no closed-form point value to translate`, ...none };\n }\n if (none.boundErrorAtPoint === null) {\n return { verdict: 'undetermined', reason: 'a parameter the point value needs was not supplied', ...none };\n }\n const missing = found.tr.parameters.filter((p) => at[p] === undefined);\n if (missing.length > 0) {\n return { verdict: 'undetermined', reason: `the translation needs ${missing.join(', ')} (via --at)`, ...none };\n }\n const tx = found.tr;\n const eps = none.boundErrorAtPoint;\n const floor = tx.floor?.(eps);\n if (floor !== undefined && floor > request.value) {\n return {\n verdict: 'undetermined',\n reason:\n `the translation's time-independent term is ${floor} ${tx.unit} at this point, above the tolerance: this bound ` +\n 'certifies no t, which is not a finding that the error exceeds the tolerance',\n ...none,\n };\n }\n const horizon = tx.horizonFor(eps, request.value, at);\n const domainHorizon = tx.horizonFor(bound.delta, request.value, at);\n if (Number.isNaN(horizon)) return { verdict: 'undetermined', reason: 'the translation is undefined at this point', ...none };\n const t = at['t'];\n const judged = { ...none, horizon, domainHorizon: Number.isNaN(domainHorizon) ? null : domainHorizon };\n if (t === undefined) {\n return {\n verdict: 'undetermined',\n reason: `no t= given; the ${tx.observable} horizon here is t* = ${horizon} (${tx.timeUnit})`,\n ...judged,\n };\n }\n const observableErrorAt = tx.errorAt(eps, t, at);\n const bridgeHorizonHolds = bound.horizonHolds(t, at);\n const withT = { ...judged, observableErrorAt, bridgeHorizonHolds };\n if (!bridgeHorizonHolds) {\n return { verdict: 'inadequate', reason: `past ${first.id}'s own horizon (${bound.horizon}): the bound is not claimed there`, ...withT };\n }\n const what = tx.errorKind === 'upper-bound' ? `bound on the ${tx.observable} error` : `accumulated ${tx.observable} error`;\n if (t <= horizon) {\n return { verdict: 'adequate', reason: `t = ${t} <= t* = ${horizon}: ${what} ${observableErrorAt} ${tx.unit} <= ${request.value}`, ...withT };\n }\n return tx.errorKind === 'upper-bound'\n ? {\n verdict: 'undetermined',\n reason:\n `t = ${t} > t* = ${horizon}: the ${what} is ${observableErrorAt} ${tx.unit}, above ${request.value}; ` +\n 'the error itself may still be within it, so this is not shown inadequate',\n ...withT,\n }\n : { verdict: 'inadequate', reason: `t = ${t} > t* = ${horizon}: ${what} ${observableErrorAt} ${tx.unit} exceeds ${request.value}`, ...withT };\n}\n\n/** Evidence DERIVED by running a record's witnesses now. */\nfunction runWitnesses(api: CommandCtx['api'], witnesses: readonly Witness[], checks: Translation['checks']) {\n const runs = checks.map((c) => api.runTranslationCheck(c));\n const passing = new Set(runs.filter((r) => r.status === 'checked').map((r) => r.witnessId));\n return {\n tags: [...api.deriveEvidence({ witnesses }, passing)].sort(),\n witnesses: runs.map((r) => ({\n id: r.witnessId,\n claim: witnesses.find((w) => w.id === r.witnessId)?.tolerance ?? null,\n status: r.status,\n detail: r.detail,\n })),\n };\n}\n\n/** The translation's evidence, and each carriage's, DERIVED by running their witnesses now; never the bound's. */\nfunction translationEvidence(api: CommandCtx['api'], tr: Translation, carriages: readonly Carriage[]) {\n return {\n ...runWitnesses(api, tr.witnesses, tr.checks),\n note: \"the translation's own evidence, distinct from the bound's; it carries no formal reference\",\n carriages: carriages.map((c) => ({\n bridgeId: c.bridgeId,\n observable: c.observable,\n map: c.map,\n derivation: c.derivation,\n premisesNotChecked: [...c.premises],\n timeMap: c.timeMap,\n ...runWitnesses(api, c.witnesses, c.checks),\n })),\n };\n}\n\ntype PointWitness =\n | { unavailable: string }\n | {\n id: string;\n claim: string;\n status: string;\n detail: string;\n control?: { id: string; claim: string; status: string; detail: string; discriminates: boolean };\n };\n\n/**\n * The translation's witness run at THIS point, bounded in cost, and, when\n * asked, its control: the same measurement against a plausible wrong map. A\n * control that is not refuted here shows this witness cannot tell the two\n * maps apart at this point, and is reported as such.\n */\nfunction pointWitness(api: CommandCtx['api'], tr: Translation, eps: number, withControl: boolean): PointWitness {\n const pc = tr.pointCheck(eps);\n if ('unavailable' in pc) return { unavailable: pc.unavailable };\n const r = api.runTranslationCheck(pc.check);\n const base = { id: r.witnessId, claim: pc.claim, status: r.status, detail: r.detail };\n if (!withControl) return base;\n const c = api.runTranslationCheck(pc.control);\n return {\n ...base,\n control: { id: c.witnessId, claim: pc.controlClaim, status: c.status, detail: c.detail, discriminates: c.status === 'refuted' },\n };\n}\n\n/** A judgement with its point witness; a witness refuted here withdraws any verdict to undetermined. @internal */\nexport function judgeAtPoint(\n api: CommandCtx['api'],\n request: ToleranceRequest & { observable: string },\n bridges: Bridges,\n e: Evaluation,\n at: Readonly<Record<string, number>>,\n withControl: boolean,\n): ObservableJudgement & { pointWitness: PointWitness | null } {\n const j = judgeObservable(api, request, bridges, e, at);\n if (j.translation === null || j.horizon === null || j.boundErrorAtPoint === null) return { ...j, pointWitness: null };\n const pw = pointWitness(api, j.translation, j.boundErrorAtPoint, withControl);\n if ('status' in pw && pw.status === 'refuted') {\n return {\n ...j,\n verdict: 'undetermined',\n reason: `the translation's witness at this point (${pw.id}) is refuted, so its horizon is not relied on here: ${pw.detail}`,\n pointWitness: pw,\n };\n }\n return { ...j, pointWitness: pw };\n}\n\nfunction thresholdOrigin(request: ToleranceRequest, tr: Translation, bridges: Bridges): string {\n return (\n `t* is derived from the requested tolerance ${request.value} ${tr.unit} through the translation; ` +\n `${bridges[0]!.id}'s own horizon (${translatedBound(bridges, tr).horizon}) is the record's fixed threshold, judged separately`\n );\n}\n\nfunction observableReport(\n request: ToleranceRequest,\n j: ReturnType<typeof judgeAtPoint>,\n bridges: Bridges,\n evidence: ReturnType<typeof translationEvidence> | null,\n) {\n const tr = j.translation;\n return {\n observable: request.observable,\n value: request.value,\n verdict: j.verdict,\n reason: j.reason,\n ...(tr === null\n ? { translation: null }\n : {\n unit: tr.unit,\n translation: {\n bridgeId: tr.bridgeId,\n fromNorm: tr.fromNorm,\n errorKind: tr.errorKind,\n definition: tr.definition,\n derivation: tr.derivation,\n premisesNotChecked: [...tr.premises],\n timeUnit: tr.timeUnit,\n notCovered: [...tr.notCovered],\n carriedBy: j.carriages.map((c) => c.bridgeId),\n },\n boundErrorAtPoint: j.boundErrorAtPoint,\n domainSupremum: j.domainSupremum,\n observableErrorAt: j.observableErrorAt,\n horizon: j.horizon,\n domainHorizon: j.domainHorizon,\n horizonConvention: tr.boundary,\n thresholdOrigin: thresholdOrigin(request, tr, bridges),\n bridgeHorizon: { horizon: translatedBound(bridges, tr).horizon, holds: j.bridgeHorizonHolds },\n evidence,\n pointWitness: j.pointWitness,\n }),\n };\n}\n\nfunction printObservable(\n out: CommandCtx['out'],\n request: ToleranceRequest,\n j: ReturnType<typeof judgeAtPoint>,\n bridges: Bridges,\n evidence: ReturnType<typeof translationEvidence> | null,\n composite: 'bound' | 'no-claim',\n): void {\n const tr = j.translation;\n out(` tolerance ${showTolerance(request, tr?.unit)}: ${j.verdict.toUpperCase()} — ${j.reason}`);\n if (tr === null) return;\n const show = (v: number | null): string => (v === null ? 'not evaluated' : String(v));\n const first = bridges[0]!;\n const kind = tr.errorKind === 'upper-bound' ? 'an UPPER BOUND on the error, not the error' : 'the error itself';\n out(` translation (${tr.bridgeId}; ${kind}): ${tr.fromNorm} → ${tr.observable}: ${tr.definition}`);\n out(` ${tr.derivation}`);\n out(` premises not machine-checked: ${tr.premises.join('; ')}`);\n for (const c of evidence?.carriages ?? []) {\n out(` carried by ${c.bridgeId} (its declared carriage of ${c.observable}): ${c.map}`);\n out(` ${c.derivation}; ${c.timeMap}`);\n out(` premises not machine-checked: ${c.premisesNotChecked.join('; ')}`);\n }\n if (j.carriages.length > 0 && composite === 'no-claim') {\n out(\n ` the composite bound is still '${NO_COMPOSITE_PHRASE}': the composition table is not consulted or widened; ` +\n `this judgement is in ${tr.observable} only, through the declared carriage`,\n );\n } else if (j.carriages.length > 0) {\n out(\n ` the composite bound above is in '${first.bound!.norm}', carried by a declared norm transport; ` +\n `this judgement is a separate claim in ${tr.observable}, through the declared carriage, and neither implies the other`,\n );\n }\n const what = tr.errorKind === 'upper-bound' ? `bound on the ${tr.observable} error` : `accumulated ${tr.observable} error`;\n out(` ${first.bound!.norm} at this point: ${show(j.boundErrorAtPoint)}; domain supremum: ${show(j.domainSupremum)}`);\n out(` ${what} at t: ${j.observableErrorAt === null ? 'not evaluated' : `${j.observableErrorAt} ${tr.unit}`}`);\n out(` ${tr.observable} horizon t* at this point: ${show(j.horizon)} (${tr.timeUnit}; ${tr.boundary})`);\n out(` ${tr.observable} horizon over the whole domain ${first.bound!.domain} (from the supremum): ${show(j.domainHorizon)}`);\n out(` threshold origin: ${thresholdOrigin(request, tr, bridges)}`);\n out(\n ` ${first.id}'s own horizon at t: ${j.bridgeHorizonHolds === null ? 'not evaluated' : j.bridgeHorizonHolds ? 'holds' : 'VIOLATED'} — ${first.bound!.horizon}`,\n );\n out(` not covered by this translation: ${tr.notCovered.join('; ')}`);\n if (evidence !== null) {\n out(` translation evidence (fixture, the regression anchor): ${evidence.tags.join(', ')} (${evidence.note})`);\n for (const w of evidence.witnesses) out(` - ${w.id} [numeric, run now; ${w.claim ?? 'no claim stated'}]: ${w.status} — ${w.detail}`);\n for (const c of evidence.carriages) {\n out(` carriage evidence (${c.bridgeId}): ${c.tags.join(', ')}`);\n for (const w of c.witnesses) out(` - ${w.id} [numeric, run now; ${w.claim ?? 'no claim stated'}]: ${w.status} — ${w.detail}`);\n }\n }\n const pw = j.pointWitness;\n if (pw === null) {\n out(' witness at this point: not run (the translation was not evaluated here)');\n } else if ('unavailable' in pw) {\n out(` witness at this point: not run — ${pw.unavailable}`);\n } else {\n out(` witness at this point: ${pw.id} [${pw.claim}]: ${pw.status} — ${pw.detail}`);\n if (pw.control !== undefined) {\n out(\n ` control ${pw.control.id} [${pw.control.claim}]: ${pw.control.status}` +\n (pw.control.discriminates\n ? ' — the check fails on the wrong map here, so it can fail'\n : ' — NOT refuted: at this point the witness cannot tell the wrong map from the declared one') +\n ` (${pw.control.detail})`,\n );\n }\n }\n}\n\ntype Evaluation = {\n allRegimesHold: boolean | 'unknown';\n horizons: readonly HorizonReport[];\n allHold: boolean;\n pointBound: { K: number; delta: number } | null;\n pointBoundReason: string | null;\n regimeCollisions: readonly { readonly group: string; readonly families: readonly string[] }[];\n};\n\ntype SweepResult = { kind: 'bound'; norm?: string | null | undefined; bound: { K: number; delta: number } } | { kind: 'no-claim'; reason: string };\n\n/** A row's status on one path: what the point command would say there, with no error where no bound is claimed. */\nfunction sweepCell(e: Evaluation, result: SweepResult) {\n const regime = e.allRegimesHold === true ? 'holds' : e.allRegimesHold === false ? 'violated' : 'unknown';\n const horizon = e.horizons.length === 0 || e.horizons[0]!.holds === null ? 'not-evaluated' : e.allHold ? 'holds' : 'violated';\n let error: number | null = e.pointBound?.delta ?? null;\n let reason = result.kind === 'no-claim' ? 'no composite claim' : e.pointBoundReason;\n if (error !== null && horizon === 'violated') {\n error = null;\n reason = 'past the horizon: the bound is not claimed there';\n }\n return { regime, horizon, error, reason };\n}\n\nfunction checkSweep(api: CommandCtx['api'], spec: string, point: Readonly<Record<string, number>>) {\n const sweep = parseSweep(api, spec);\n if (sweep.name in point) {\n throw new CliError(`upt path: '${sweep.name}' is both swept and fixed by --at; give it one role`);\n }\n return sweep;\n}\n\n/**\n * One path evaluated at every sample of one parameter. Each row is what the\n * point command would say there; no trajectory is interpolated. A row outside\n * a regime or past a horizon carries no error, because no bound is claimed\n * there, and it is not joined to its neighbours.\n */\nfunction runSweep(\n ctx: CommandCtx,\n s: {\n from: string;\n to: string;\n point: Readonly<Record<string, number>>;\n bridges: readonly AtlasBridge[];\n result: SweepResult;\n evaluateAt: (at: Readonly<Record<string, number>>) => Evaluation;\n spec: string;\n tolerance: ToleranceRequest | null;\n scope: string;\n judgeRow: (e: Evaluation, at: Readonly<Record<string, number>>, tGiven: boolean) => {\n verdict: string;\n observableErrorAt?: number | null;\n horizon?: number | null;\n pointWitness?: PointWitness | null;\n };\n translation: { tr: Translation; evidence: ReturnType<typeof translationEvidence> } | null;\n },\n): number {\n const { out, args } = ctx;\n const sweep = checkSweep(ctx.api, s.spec, s.point);\n const rows = sweep.values.map((value) => {\n const at = { ...s.point, [sweep.name]: value };\n const e = s.evaluateAt(at);\n const { regime, horizon, error, reason } = sweepCell(e, s.result);\n const judged = s.tolerance === null ? null : s.judgeRow(e, at, 't' in s.point || sweep.name === 't');\n const pw = judged?.pointWitness;\n return {\n value,\n regime,\n horizon,\n error,\n ...(error === null && reason !== null ? { reason } : {}),\n ...(judged === null ? {} : { adequacy: judged.verdict }),\n ...(judged?.horizon === undefined ? {} : { observableHorizon: judged.horizon, observableError: judged.observableErrorAt ?? null }),\n ...(pw === undefined || pw === null ? {} : { pointWitness: 'unavailable' in pw ? { status: 'not-run', reason: pw.unavailable } : { id: pw.id, status: pw.status } }),\n };\n });\n const tally = (k: 'regime' | 'horizon', v: string) => rows.filter((r) => r[k] === v).length;\n const integrated =\n s.translation === null\n ? 'nothing is integrated and no trajectory is produced'\n : `the only integration is the translation's witness, run at each judged row's point (${s.translation.tr.bridgeId}, ` +\n 'RK4, bounded); no trajectory is output';\n const evaluated =\n s.result.kind === 'bound'\n ? `the path's closed-form point bound at each sample (the exact error of the reduced model in the norm '${s.result.norm ?? 'none stated'}'); ` +\n integrated\n : `no error: the path carries no composite claim ('${s.result.reason}'); rows report regime and horizon status only` +\n (s.translation === null ? '' : `; ${integrated}`);\n const fixed = Object.entries(s.point).map(([k, v]) => `${k}=${v}`).join(' ') || 'none';\n\n if (args.flags.has('json')) {\n emitJson(\n {\n command: 'path',\n epistemics: EPISTEMICS,\n options: { from: s.from, to: s.to, at: s.point, sweep: { parameter: sweep.name, spacing: sweep.spacing, samples: rows.length } },\n result: {\n path: s.bridges.map((b) => b.id),\n kind: s.result.kind,\n ...(s.result.kind === 'bound' ? { domainSupremum: s.result.bound, norm: s.result.norm } : { reason: s.result.reason }),\n evaluated,\n ...(s.tolerance === null\n ? {}\n : s.tolerance.observable === null\n ? { tolerance: s.tolerance.value, toleranceScope: s.scope }\n : {\n tolerance: s.tolerance.value,\n toleranceObservable: s.tolerance.observable,\n ...(s.translation === null\n ? { translation: null }\n : {\n translation: {\n bridgeId: s.translation.tr.bridgeId,\n unit: s.translation.tr.unit,\n errorKind: s.translation.tr.errorKind,\n boundary: s.translation.tr.boundary,\n evidence: s.translation.evidence,\n },\n }),\n }),\n rows,\n tally: {\n inRegime: tally('regime', 'holds'),\n outsideRegime: tally('regime', 'violated'),\n regimeUnknown: tally('regime', 'unknown'),\n pastHorizon: tally('horizon', 'violated'),\n },\n },\n },\n ctx.write,\n );\n return 0;\n }\n if (args.flags.has('csv')) {\n const tol = s.tolerance !== null;\n const pwCol = s.translation !== null;\n ctx.write(`${sweep.name},regime,horizon,error,${tol ? 'adequacy,' : ''}${pwCol ? 'point_witness,' : ''}reason\\n`);\n for (const r of rows) {\n ctx.write(\n `${r.value},${r.regime},${r.horizon},${r.error ?? ''},${tol ? `${r.adequacy},` : ''}${pwCol ? `${r.pointWitness?.status ?? ''},` : ''}` +\n `\"${(r.reason ?? '').replace(/\"/g, '\"\"')}\"\\n`,\n );\n }\n return 0;\n }\n\n out(`\\nupt path ${s.from} → ${s.to} — sweep ${sweep.name} over [${sweep.values[0]}, ${sweep.values[sweep.values.length - 1]}], ${rows.length} samples (${sweep.spacing}); fixed: ${fixed}`);\n out(` path: ${s.bridges.map((b) => b.id).join(' → ')}`);\n if (s.result.kind === 'bound') out(` domain supremum: K = ${s.result.bound.K} · delta = ${s.result.bound.delta}`);\n out(` evaluated: ${evaluated}`);\n if (s.tolerance !== null && s.tolerance.observable === null) out(` tolerance: ${s.tolerance.value}, ${s.scope}`);\n if (s.tolerance !== null && s.tolerance.observable !== null) {\n const carried = s.translation?.evidence.carriages.map((c) => c.bridgeId) ?? [];\n out(\n s.translation === null\n ? ` tolerance: ${showTolerance(s.tolerance)} — no translation into '${s.tolerance.observable}' reaches the end of this path; every row is undetermined`\n : ` tolerance: ${showTolerance(s.tolerance, s.translation.tr.unit)} through ${s.translation.tr.bridgeId}'s declared translation` +\n `${carried.length > 0 ? `, carried by ${carried.join(', ')}` : ''} (${s.translation.tr.boundary}); ` +\n `translation evidence (fixture): ${s.translation.evidence.tags.join(', ')}`,\n );\n }\n const tolCol = s.tolerance === null ? '' : `${'adequacy'.padEnd(13)} `;\n const pwCol = s.translation === null ? '' : `${'point witness'.padEnd(14)} `;\n out(` ${sweep.name.padEnd(12)} ${'regime'.padEnd(10)} ${'horizon'.padEnd(14)} ${tolCol}${pwCol}error`);\n for (const r of rows) {\n const a = r.adequacy === undefined ? '' : `${r.adequacy.padEnd(13)} `;\n const w = s.translation === null ? '' : `${(r.pointWitness?.status ?? '—').padEnd(14)} `;\n out(` ${ctx.api.formatQuantity(r.value, 6).padEnd(12)} ${String(r.regime).padEnd(10)} ${String(r.horizon).padEnd(14)} ${a}${w}${r.error === null ? `— ${r.reason ?? ''}` : ctx.api.formatQuantity(r.error, 6)}`);\n }\n out(\n ` in regime: ${tally('regime', 'holds')} · outside: ${tally('regime', 'violated')} · unknown: ${tally('regime', 'unknown')} · ` +\n `past the horizon: ${tally('horizon', 'violated')} of ${rows.length}`,\n );\n out(' (a row with no error is not joined to its neighbours: no bound is claimed there. A sweep exits 0; each row is its own verdict.)');\n return 0;\n}\n\n/** One side of a `--compare` sweep: a route from the shared source and what it composes to. */\ninterface CompareSide {\n to: string;\n bridges: Bridges;\n result: SweepResult;\n evaluateAt: (at: Readonly<Record<string, number>>) => Evaluation;\n}\n\n/**\n * Two routes from one source, swept side by side over one parameter. Per row,\n * each route is `claimed` (regime and horizon hold, and a closed-form error\n * exists), `not-claimed` (a regime or horizon is violated, or the route carries\n * no composite claim) or `unsettled` (a coordinate or t was not supplied). A\n * row where every route is not-claimed is NEITHER: no encoded limit applies,\n * and it carries no number. The two errors are in their own norms and are\n * never compared with each other.\n */\nfunction runCompare(ctx: CommandCtx, from: string, point: Readonly<Record<string, number>>, spec: string, sides: readonly CompareSide[]): number {\n const { out, args } = ctx;\n const sweep = checkSweep(ctx.api, spec, point);\n const rows = sweep.values.map((value) => {\n const at = { ...point, [sweep.name]: value };\n const paths = sides.map((side) => {\n const e = side.evaluateAt(at);\n const cell = sweepCell(e, side.result);\n const state =\n cell.error !== null && cell.regime === 'holds' && cell.horizon !== 'not-evaluated'\n ? 'claimed'\n : cell.error !== null && cell.regime === 'holds' && e.horizons.length === 0\n ? 'claimed'\n : cell.regime === 'violated' || cell.horizon === 'violated' || side.result.kind === 'no-claim'\n ? 'not-claimed'\n : 'unsettled';\n return {\n to: side.to,\n regime: cell.regime,\n horizon: cell.horizon,\n state,\n error: state === 'claimed' ? cell.error : null,\n ...(state !== 'claimed' && cell.reason !== null ? { reason: cell.reason } : {}),\n ...(state === 'unsettled' && cell.error !== null ? { reason: 'no t= given, so the horizon was not evaluated' } : {}),\n };\n });\n const claimedBy = paths.filter((p) => p.state === 'claimed').map((p) => p.to);\n const coverage = claimedBy.length > 0 ? 'covered' : paths.every((p) => p.state === 'not-claimed') ? 'neither' : 'unsettled';\n return { value, paths, claimedBy, coverage };\n });\n const count = (c: string) => rows.filter((r) => r.coverage === c).length;\n const tally = {\n covered: count('covered'),\n neither: count('neither'),\n unsettled: count('unsettled'),\n claimedBy: Object.fromEntries(sides.map((sd) => [sd.to, rows.filter((r) => r.claimedBy.includes(sd.to)).length])),\n claimedByAll: rows.filter((r) => r.claimedBy.length === sides.length).length,\n };\n const evaluated =\n \"each route's closed-form point bound at each sample, in that route's OWN norm; the two errors are different \" +\n 'quantities and are not compared with each other. Nothing is integrated and no trajectory is produced';\n const neitherNote = `no encoded limit applies: the parent ${from} is the model to use there, and no reduced-model number is given`;\n const fixed = Object.entries(point).map(([k, v]) => `${k}=${v}`).join(' ') || 'none';\n\n if (args.flags.has('json')) {\n emitJson(\n {\n command: 'path',\n epistemics: EPISTEMICS,\n options: {\n from,\n to: sides.map((sd) => sd.to),\n at: point,\n sweep: { parameter: sweep.name, spacing: sweep.spacing, samples: rows.length },\n },\n result: {\n compare: sides.map((sd) => ({\n to: sd.to,\n path: sd.bridges.map((b) => b.id),\n kind: sd.result.kind,\n ...(sd.result.kind === 'bound' ? { domainSupremum: sd.result.bound, norm: sd.result.norm } : { reason: sd.result.reason }),\n })),\n evaluated,\n neither: neitherNote,\n rows,\n tally,\n },\n },\n ctx.write,\n );\n return 0;\n }\n if (args.flags.has('csv')) {\n const head = sides.flatMap((sd) => [`${sd.to}_regime`, `${sd.to}_horizon`, `${sd.to}_state`, `${sd.to}_error`]);\n ctx.write(`${sweep.name},${head.join(',')},coverage\\n`);\n for (const r of rows) {\n const cells = r.paths.flatMap((p) => [p.regime, p.horizon, p.state, p.error ?? '']);\n ctx.write(`${r.value},${cells.join(',')},${r.coverage === 'covered' ? r.claimedBy.join('+') : r.coverage}\\n`);\n }\n return 0;\n }\n\n out(\n `\\nupt path ${from} → ${sides.map((sd) => sd.to).join(' | ')} — sweep ${sweep.name} over [${sweep.values[0]}, ` +\n `${sweep.values[sweep.values.length - 1]}], ${rows.length} samples (${sweep.spacing}); fixed: ${fixed}`,\n );\n for (const sd of sides) {\n out(\n ` → ${sd.to}: ${sd.bridges.map((b) => b.id).join(' → ')}; ` +\n (sd.result.kind === 'bound' ? `norm: ${sd.result.norm ?? 'none stated'}` : `no composite claim ('${sd.result.reason}')`),\n );\n }\n out(` evaluated: ${evaluated}`);\n const heads = sides.map((sd) => `${sd.to}: regime/horizon error`);\n const w = Math.max(30, ...heads.map((h) => h.length));\n out(` ${sweep.name.padEnd(12)} ${heads.map((h) => h.padEnd(w)).join(' ')} covered by`);\n for (const r of rows) {\n const cells = r.paths.map((p) =>\n `${p.regime}/${p.horizon} ${p.error === null ? '—' : ctx.api.formatQuantity(p.error, 6)}`.padEnd(w),\n );\n const cov = r.coverage === 'covered' ? r.claimedBy.join(' + ') : r.coverage === 'neither' ? `NEITHER — ${neitherNote}` : 'UNSETTLED — a coordinate or t was not supplied';\n out(` ${ctx.api.formatQuantity(r.value, 6).padEnd(12)} ${cells.join(' ')} ${cov}`);\n }\n out(\n ` covered: ${tally.covered} (${sides.map((sd) => `${sd.to}: ${tally.claimedBy[sd.to]}`).join(', ')}; by all: ${tally.claimedByAll}) · ` +\n `NEITHER: ${tally.neither} · unsettled: ${tally.unsettled} of ${rows.length}`,\n );\n out(' (errors to 6 significant digits, --json for full precision; a row with no error is not joined to its neighbours. A sweep exits 0.)');\n return 0;\n}\n\n/** The point evaluation of one route: regimes, horizons and the proven point bound at `at`. */\nfunction makeEvaluator(api: CommandCtx['api'], bridges: Bridges, result: RouteClaim) {\n return (at: Readonly<Record<string, number>>): Evaluation & { regimes: RegimeReport[] } => {\n // A horizon is read at the END of the route: a transport applied after a\n // bound restates it on the later model's clock (ADR, time map).\n const carried = result.kind === 'bound' ? (result.transports ?? []) : [];\n const horizons: HorizonReport[] = bridges.flatMap((b, i) => {\n const h = api.horizonOnRoute(bridges, carried, i);\n if (h === null) return [];\n // A later step in another family keeps its horizon unevaluated unless a\n // transport on that step restates the clock. The earlier horizon stays\n // in the time of the model where it was stated.\n const blocked = api.familyChangeBlocksHorizon(bridges, carried, i);\n return [\n {\n bridgeId: b.id,\n horizon: h.horizon,\n holds: at['t'] === undefined || blocked ? null : h.holds(at['t'], at),\n ...(h.restatedBy.length > 0\n ? { restatedBy: h.restatedBy.map((a) => ({ transport: a.transport.id, horizon: a.transport.timeMap.horizon })) }\n : {}),\n ...(blocked ? { unevaluated: 'cross-family' as const } : {}),\n },\n ];\n });\n const allHold = horizons.every((h) => h.holds === true);\n\n // Each step is checked against its own regime. A group name whose π-groups\n // differ is dropped on every step that defines it, so the supplied number\n // is not applied to either definition. intersectRegimes is not called.\n const regimeCollisions = api.collidingRegimeGroups(bridges.map((b) => b.regime));\n const blockedGroups = new Set(regimeCollisions.map((c) => c.group));\n const regimes: RegimeReport[] = bridges.map((b) => {\n const { values } = resolveAtPoint(api, at, [b.regime]);\n for (const name of blockedGroups) delete values[name];\n const check = api.regimeHolds(b.regime, values);\n return {\n bridgeId: b.id,\n ok: check.ok,\n violated: check.violated.map(showInequality),\n unchecked: check.unchecked.map(showInequality),\n ...(b.sideConditions.length > 0 ? { premisesNotChecked: [...b.sideConditions] } : {}),\n };\n });\n const allRegimesHold: boolean | 'unknown' = regimes.some((r) => r.ok === false)\n ? false\n : regimes.some((r) => r.ok === 'unknown')\n ? 'unknown'\n : true;\n\n // The bound AT the --at point (persona finding L9). Printed only when it is\n // PROVEN: every regime holds, every step has a closed-form deltaAt (the exact\n // error), and every value is finite. It is composed by the same rule as the\n // domain supremum, by substituting each step's point value for its delta.\n let pointBound: { K: number; delta: number } | null = null;\n let pointBoundReason: string | null = null;\n if (result.kind === 'bound' && Object.keys(at).length > 0) {\n const steps = bridges.filter((b) => b.bound !== undefined);\n const numerical = steps.find((b) => b.bound!.deltaAtBasis !== 'closed-form');\n if (allRegimesHold !== true) {\n pointBoundReason = 'a regime on the path is violated or unchecked';\n } else if (steps.length === 0) {\n pointBoundReason = 'no step carries a bound';\n } else if (numerical !== undefined) {\n pointBoundReason =\n numerical.bound!.deltaAt === undefined\n ? `${numerical.id} states no point bound`\n : `${numerical.id}'s point bound is numerically supported, not proven`;\n } else {\n // A transport's K is substituted by its closed form at the point, as a\n // bound's delta is (for ab-spring-lc both are the constant 1).\n const atPoint = bridges.map((b) =>\n b.bound === undefined\n ? b.normTransports === undefined\n ? b\n : { ...b, normTransports: b.normTransports.map((nt) => ({ ...nt, K: nt.KAt(at) })) }\n : { ...b, bound: { ...b.bound, delta: b.bound.deltaAt!(at) } },\n );\n const composed = atPoint.every((b) => b.bound === undefined || Number.isFinite(b.bound.delta))\n ? api.boundPath(atPoint)\n : null;\n if (composed !== null && composed.kind === 'bound') pointBound = composed.bound;\n else pointBoundReason = 'a parameter the point bound needs was not supplied';\n }\n }\n return { regimes, allRegimesHold, horizons, allHold, pointBound, pointBoundReason, regimeCollisions };\n };\n}\n\nasync function run(ctx: CommandCtx): Promise<number> {\n const { args, api, out, err } = ctx;\n const wantJson = args.flags.has('json');\n const endpoints = args.positionals.filter((p) => !p.includes('='));\n const assignments = [...(args.flags.get('at') ?? []), ...args.positionals.filter((p) => p.includes('='))];\n\n if (endpoints.length !== 2) {\n throw new UsageError(\n `upt path: exactly two model ids are required (got ${endpoints.length}); e.g. ` +\n '`upt path model-pendulum model-spring`',\n );\n }\n const [from, to] = endpoints as [string, string];\n const atNotes: string[] = [];\n const point = parseAt(api, assignments, 'path', atNotes);\n for (const note of atNotes) err(note);\n const t = point['t'];\n\n const { bridges, fromFamily, toFamily } = selectRoute(api, from, to, 'path');\n const multi = from === to ? [] : multiPremiseBridges(api, from, to);\n\n if (bridges === null) {\n if (wantJson) {\n emitJson(\n {\n command: 'path',\n epistemics: EPISTEMICS,\n options: { from, to, at: point },\n result: { path: null, ...(multi.length === 0 ? {} : { multiPremise: multi }) },\n },\n ctx.write,\n );\n return 0;\n }\n out(`\\nupt path ${from} → ${to}`);\n out(' no chain of bridges connects these models; there is nothing to compose.');\n printMultiPremise(out, multi);\n return 0;\n }\n\n const labels = routeFamilyLabels(api, bridges, from);\n\n if (bridges.length === 0) {\n if (wantJson) {\n emitJson(\n {\n command: 'path',\n epistemics: EPISTEMICS,\n options: { from, to, at: point },\n result: { path: [], crossFamily: labels.crossFamily, modelFamilies: labels.modelFamilies },\n },\n ctx.write,\n );\n return 0;\n }\n out(`\\nupt path ${from} → ${to}`);\n out(' the endpoints are the same model: the path is empty and composes nothing.');\n return 0;\n }\n\n const result = routeClaim(api, bridges);\n const missing = explainsRefusal(result) ? missingForComposite(api, bridges) : [];\n\n const evaluateAt = makeEvaluator(api, bridges, result);\n const tolValues = args.flags.get('tolerance');\n const tolerance = parseTolerance(api, tolValues === undefined ? undefined : tolValues[tolValues.length - 1]);\n const scope = toleranceScope(api, bridges);\n const found = tolerance?.observable == null ? null : pathTranslation(api, bridges, tolerance.observable);\n const translation = found?.tr ?? undefined;\n const carriages = found !== null && found.tr !== null ? found.carriages : [];\n const sweepSpec = args.flags.get('sweep');\n const compareTo = args.flags.get('compare');\n if (compareTo !== undefined && compareTo.length > 0) {\n if (sweepSpec === undefined || sweepSpec.length === 0) {\n throw new CliError('upt path: --compare needs --sweep (two routes are compared row by row over a sweep)');\n }\n if (tolerance !== null) {\n throw new CliError('upt path: --compare does not take --tolerance: judge each route on its own, since their errors are in different norms');\n }\n const to2 = compareTo[compareTo.length - 1]!;\n if (to2 === to) throw new CliError(`upt path: --compare=${to2} is the same target as the path; name a different model`);\n const other = selectRoute(api, from, to2, 'path').bridges;\n if (other === null || other.length === 0) {\n throw new CliError(\n `upt path: --compare=${to2}: ${other === null ? `no chain of bridges connects ${from} to ${to2}` : 'the endpoints are the same model'}; there is nothing to compare`,\n );\n }\n const otherResult = routeClaim(api, other);\n return runCompare(ctx, from, point, sweepSpec[sweepSpec.length - 1]!, [\n { to, bridges, result, evaluateAt },\n { to: to2, bridges: other, result: otherResult, evaluateAt: makeEvaluator(api, other, otherResult) },\n ]);\n }\n if (sweepSpec !== undefined && sweepSpec.length > 0) {\n return runSweep(ctx, {\n from,\n to,\n point,\n bridges,\n result,\n evaluateAt,\n spec: sweepSpec[sweepSpec.length - 1]!,\n tolerance,\n scope,\n judgeRow: (e, at, tGiven) =>\n tolerance === null || tolerance.observable === null\n ? judgeTolerance(tolerance?.value ?? 0, e, tGiven)\n : judgeAtPoint(api, { ...tolerance, observable: tolerance.observable }, bridges, e, at, false),\n translation: translation === undefined ? null : { tr: translation, evidence: translationEvidence(api, translation, carriages) },\n });\n }\n if (args.flags.has('csv')) throw new CliError('upt path: --csv needs --sweep (a single point is not a table)');\n\n const evaluation = evaluateAt(point);\n const { regimes, allRegimesHold, horizons, allHold, pointBound, pointBoundReason, regimeCollisions } = evaluation;\n const adequacy =\n tolerance === null || tolerance.observable !== null ? null : judgeTolerance(tolerance.value, evaluation, t !== undefined);\n const observed =\n tolerance === null || tolerance.observable === null\n ? null\n : judgeAtPoint(api, { ...tolerance, observable: tolerance.observable }, bridges, evaluation, point, true);\n const evidence = translation === undefined ? null : translationEvidence(api, translation, carriages);\n\n // A violated regime or horizon is a failed check: exit 3 (persona finding F2),\n // and so is a tolerance the point error exceeds. UNKNOWN, where a coordinate\n // or t was not supplied, is not a failure.\n const horizonViolated = t !== undefined && horizons.some((h) => h.holds === false);\n // The domain supremum is the route's answer only while the point check has\n // not withdrawn it. A violated regime or horizon is not a claim, so neither\n // text nor JSON carries a bound number.\n const claimWithdrawn = allRegimesHold === false || horizonViolated;\n const withdrawnReason = allRegimesHold === false\n ? (pointBoundReason ?? 'a regime on the path is violated or unchecked')\n : 'past the horizon, no bound is claimed at this point';\n const exitCode =\n allRegimesHold === false ||\n horizonViolated ||\n adequacy?.verdict === 'inadequate' ||\n observed?.verdict === 'inadequate'\n ? EXIT_CHECK_FAILED\n : 0;\n\n if (wantJson) {\n emitJson(\n {\n command: 'path',\n epistemics: EPISTEMICS,\n options: { from, to, at: point },\n result: {\n families: { from: fromFamily, to: toFamily },\n crossFamily: labels.crossFamily,\n modelFamilies: labels.modelFamilies,\n path: labels.steps,\n // A no-claim has no `bound` key at all — the type refuses it, and so\n // does this envelope.\n ...(result.kind === 'bound'\n ? {\n kind: 'bound',\n relation: result.relation,\n ...(claimWithdrawn ? {} : { bound: result.bound }),\n norm: result.norm,\n terminal: result.terminal,\n ...(result.transports === undefined ? {} : { transports: result.transports.map(transportReport) }),\n }\n : {\n kind: 'no-claim',\n reason: result.reason,\n detail: result.detail,\n phrase: NO_COMPOSITE_PHRASE,\n ...(missing.length > 0 ? { missing } : {}),\n }),\n regimes,\n allRegimesHold,\n pointBound: claimWithdrawn ? null : pointBound,\n ...((claimWithdrawn ? withdrawnReason : pointBoundReason) !== null\n ? { pointBoundReason: claimWithdrawn ? withdrawnReason : pointBoundReason }\n : {}),\n horizons,\n ...(multi.length === 0 ? {} : { multiPremise: multi }),\n ...(regimeCollisions.length === 0 ? {} : { regimeCollisions }),\n horizonsEvaluated: t !== undefined,\n allHorizonsHold:\n t === undefined || horizons.some((h) => h.holds === null) ? (horizonViolated ? false : null) : allHold,\n ...(adequacy === null ? {} : { tolerance: { value: tolerance!.value, ...adequacy, scope } }),\n ...(observed === null ? {} : { tolerance: observableReport(tolerance!, observed, bridges, evidence) }),\n },\n },\n ctx.write,\n );\n return exitCode;\n }\n\n out(`\\nupt path ${from} → ${to}`);\n out(` ${bridges.length} bridge(s):`);\n for (const b of bridges) out(` ${b.premises[0]} --[${b.relation}]--> ${b.conclusion} (${b.id})`);\n printMultiPremise(out, multi);\n if (labels.crossFamily) {\n out(` crosses families: ${labels.modelFamilies.join(' → ')}`);\n }\n out('');\n if (result.kind === 'bound') {\n out(` composite relation: ${result.relation}`);\n if (claimWithdrawn) {\n out(' composed bound: none — no bound is claimed at this point');\n } else {\n out(` composed bound: K = ${result.bound.K} · delta = ${result.bound.delta}`);\n }\n out(` norm: ${result.norm ?? '(none stated — the claim is the vacuous identity)'}`);\n if (result.terminal) out(' terminal: the last step states no Lipschitz constant; the claim ends there');\n for (const a of result.transports ?? []) {\n const nt = a.transport;\n out(` why the bound crosses '${a.bridgeId}' (exact): it declares the norm transport '${nt.id}'`);\n out(` ${nt.fromModel} → ${nt.toModel}: '${nt.from}' → '${nt.to}', K = ${nt.K} (${nt.domain})`);\n out(` because: ${nt.derivation}`);\n out(` time map: ${nt.timeMap.map} (uniform)`);\n out(` horizon: ${nt.timeMap.horizon}`);\n out(\n ` witness: ${nt.witness.id} (${nt.witness.kind}; ${nt.basis} when it checks, never formally proved) — ` +\n `\\`upt map --route=${from},${to} --run\\` runs it`,\n );\n out(' no other norm or direction through this map is declared, and each stays refused');\n }\n if (!claimWithdrawn && pointBound !== null) {\n out(\n ` bound at this point: K = ${pointBound.K} · delta = ${pointBound.delta} (closed-form: the exact error; ` +\n \"the composed bound above is the supremum over the bridge's domain)\",\n );\n } else if ((claimWithdrawn ? withdrawnReason : pointBoundReason) !== null) {\n out(` bound at this point: none — ${claimWithdrawn ? withdrawnReason : pointBoundReason}`);\n }\n } else {\n out(` composite relation: ${NO_COMPOSITE_PHRASE}`);\n out(` bound: ${NO_COMPOSITE_PHRASE} — reason '${result.reason}'`);\n out(` ${result.detail}`);\n if (missing.length > 0) {\n out(' to compose, this path would need:');\n for (const m of missing) out(` - ${m}`);\n }\n }\n out('');\n if (allRegimesHold === false) {\n out(' regimes at --at: VIOLATED — no bound on this path is claimed at this point');\n } else if (allRegimesHold === 'unknown') {\n out(' regimes at --at: UNKNOWN (a coordinate was not supplied); an unchecked regime is not a passing one');\n } else if (bridges.every((b) => b.regime.inequalities.length === 0)) {\n out(' regimes: VACUOUS — no bridge on this path states an inequality; nothing was checked');\n } else {\n out(' regimes at --at: all hold');\n }\n for (const r of regimes) {\n if (r.ok === false) out(` ${r.bridgeId}: VIOLATED — ${r.violated.join('; ')}`);\n else if (r.ok === 'unknown') out(` ${r.bridgeId}: unknown — unchecked: ${r.unchecked.join('; ')}`);\n }\n if (regimeCollisions.length > 0) {\n out(' regime group names collide (unchecked on each step that defines them):');\n for (const c of regimeCollisions) out(` ${c.group}: ${c.families.join(', ')}`);\n }\n if (regimes.some((r) => r.premisesNotChecked !== undefined)) {\n out(' premises not machine-checked (your judgment or measurement):');\n for (const r of regimes) {\n if (r.premisesNotChecked !== undefined) out(` ${r.bridgeId}: ${r.premisesNotChecked.join('; ')}`);\n }\n }\n if (horizons.length === 0) {\n out(' horizons: none on this path (no step carries a bound)');\n } else if (t === undefined) {\n out(' horizons: NOT EVALUATED (no t= supplied via --at); an unevaluated horizon is not a passing one');\n for (const h of horizons) {\n out(` ${h.bridgeId}: ${h.horizon}`);\n for (const r of h.restatedBy ?? []) out(` restated by '${r.transport}': ${r.horizon}`);\n }\n } else if (horizons.some((h) => h.unevaluated === 'cross-family') && !horizonViolated) {\n out(` horizons at t=${t}: NOT EVALUATED — a family change does not restate a horizon onto the next clock`);\n for (const h of horizons) {\n const state = h.holds === null ? 'unevaluated' : h.holds ? 'holds' : 'VIOLATED';\n out(` ${h.bridgeId}: ${state} — ${h.horizon}`);\n for (const r of h.restatedBy ?? []) out(` restated by '${r.transport}': ${r.horizon}`);\n }\n } else {\n out(` horizons at t=${t}: ${allHold ? 'all hold' : 'NOT all hold'}`);\n for (const h of horizons) {\n const state = h.holds === null ? 'unevaluated' : h.holds ? 'holds' : 'VIOLATED';\n out(` ${h.bridgeId}: ${state} — ${h.horizon}`);\n for (const r of h.restatedBy ?? []) out(` restated by '${r.transport}': ${r.horizon}`);\n }\n }\n if (adequacy !== null) {\n out(` tolerance ${tolerance!.value}: ${adequacy.verdict.toUpperCase()} — ${adequacy.reason}`);\n out(` (${scope})`);\n }\n if (observed !== null) printObservable(out, tolerance!, observed, bridges, evidence, result.kind);\n out(` (${EPISTEMICS})`);\n return exitCode;\n}\n\nexport const command: Command = {\n name: 'path',\n aliases: [],\n positionals: { max: Infinity },\n flags: FLAGS,\n help: commandHelp(HELP, FLAGS),\n summary: 'Show the bridge chain between two models and whether a bound is claimed there.',\n example: 'upt path model-pendulum model-spring --at theta0=0.2 T0=1 t=10',\n group: 'explore',\n run,\n};\nregisterCommand(command);\n"]}