universal-physics-tensor 8.0.0 → 10.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 (916) hide show
  1. package/README.md +26 -21
  2. package/data/atlas/atlas.json +75 -64
  3. package/data/atlas/atlas.jsonld +1 -1
  4. package/data/atlas/diffusion.json +23 -22
  5. package/data/atlas/oscillators.json +21 -16
  6. package/data/atlas/waves.json +33 -28
  7. package/data/bridge-catalog.json +1356 -1791
  8. package/data/bridge-catalog.schema.json +789 -46
  9. package/data/quantities.json +280 -234
  10. package/data/quantities.schema.json +52 -0
  11. package/data/schemas/atlas-record.v0.json +184 -46
  12. package/data/units.json +1178 -0
  13. package/data/units.schema.json +124 -0
  14. package/dist/atlas/applicability.d.ts.map +1 -1
  15. package/dist/atlas/applicability.js +14 -3
  16. package/dist/atlas/applicability.js.map +1 -1
  17. package/dist/atlas/association.d.ts +1 -1
  18. package/dist/atlas/association.js.map +1 -1
  19. package/dist/atlas/benchmark/backend-shapes.d.ts.map +1 -1
  20. package/dist/atlas/benchmark/backend-shapes.js +5 -1
  21. package/dist/atlas/benchmark/backend-shapes.js.map +1 -1
  22. package/dist/atlas/benchmark/baselines.d.ts.map +1 -1
  23. package/dist/atlas/benchmark/baselines.js +8 -0
  24. package/dist/atlas/benchmark/baselines.js.map +1 -1
  25. package/dist/atlas/benchmark/hybrid-retrieval.d.ts +3 -2
  26. package/dist/atlas/benchmark/hybrid-retrieval.d.ts.map +1 -1
  27. package/dist/atlas/benchmark/hybrid-retrieval.js +16 -12
  28. package/dist/atlas/benchmark/hybrid-retrieval.js.map +1 -1
  29. package/dist/atlas/benchmark/leakage.js.map +1 -1
  30. package/dist/atlas/benchmark/loader.js.map +1 -1
  31. package/dist/atlas/benchmark/run-atlas.d.ts.map +1 -1
  32. package/dist/atlas/benchmark/run-atlas.js +14 -2
  33. package/dist/atlas/benchmark/run-atlas.js.map +1 -1
  34. package/dist/atlas/benchmark/stats.d.ts +1 -1
  35. package/dist/atlas/benchmark/stats.d.ts.map +1 -1
  36. package/dist/atlas/benchmark/stats.js +1 -1
  37. package/dist/atlas/benchmark/stats.js.map +1 -1
  38. package/dist/atlas/benchmark/study.js.map +1 -1
  39. package/dist/atlas/benchmark/types.js.map +1 -1
  40. package/dist/atlas/bridge-record.d.ts +4 -4
  41. package/dist/atlas/bridge-record.d.ts.map +1 -1
  42. package/dist/atlas/bridge-record.js +6 -6
  43. package/dist/atlas/bridge-record.js.map +1 -1
  44. package/dist/atlas/catalog-formal-ref.js.map +1 -1
  45. package/dist/atlas/chain-pipeline.d.ts +0 -11
  46. package/dist/atlas/chain-pipeline.d.ts.map +1 -1
  47. package/dist/atlas/chain-pipeline.js +5 -16
  48. package/dist/atlas/chain-pipeline.js.map +1 -1
  49. package/dist/atlas/composition-table.js.map +1 -1
  50. package/dist/atlas/conventions.js.map +1 -1
  51. package/dist/atlas/coverage.d.ts +2 -2
  52. package/dist/atlas/coverage.js.map +1 -1
  53. package/dist/atlas/derivation.js.map +1 -1
  54. package/dist/atlas/derive-evidence.d.ts +6 -4
  55. package/dist/atlas/derive-evidence.d.ts.map +1 -1
  56. package/dist/atlas/derive-evidence.js +7 -2
  57. package/dist/atlas/derive-evidence.js.map +1 -1
  58. package/dist/atlas/diffusion/bridges-closure.d.ts.map +1 -1
  59. package/dist/atlas/diffusion/bridges-closure.js +0 -5
  60. package/dist/atlas/diffusion/bridges-closure.js.map +1 -1
  61. package/dist/atlas/diffusion/bridges.d.ts.map +1 -1
  62. package/dist/atlas/diffusion/bridges.js +0 -3
  63. package/dist/atlas/diffusion/bridges.js.map +1 -1
  64. package/dist/atlas/diffusion/dimensions.js.map +1 -1
  65. package/dist/atlas/diffusion/index.d.ts +1 -1
  66. package/dist/atlas/diffusion/index.d.ts.map +1 -1
  67. package/dist/atlas/diffusion/index.js.map +1 -1
  68. package/dist/atlas/diffusion/models.js.map +1 -1
  69. package/dist/atlas/diffusion/numerics.js.map +1 -1
  70. package/dist/atlas/error-algebra.d.ts +6 -0
  71. package/dist/atlas/error-algebra.d.ts.map +1 -1
  72. package/dist/atlas/error-algebra.js +26 -0
  73. package/dist/atlas/error-algebra.js.map +1 -1
  74. package/dist/atlas/export.d.ts +18 -2
  75. package/dist/atlas/export.d.ts.map +1 -1
  76. package/dist/atlas/export.js +9 -3
  77. package/dist/atlas/export.js.map +1 -1
  78. package/dist/atlas/families.d.ts +19 -2
  79. package/dist/atlas/families.d.ts.map +1 -1
  80. package/dist/atlas/families.js +26 -3
  81. package/dist/atlas/families.js.map +1 -1
  82. package/dist/atlas/family.d.ts +27 -0
  83. package/dist/atlas/family.d.ts.map +1 -0
  84. package/dist/atlas/family.js +12 -0
  85. package/dist/atlas/family.js.map +1 -0
  86. package/dist/atlas/index.d.ts +3 -2
  87. package/dist/atlas/index.d.ts.map +1 -1
  88. package/dist/atlas/index.js +2 -1
  89. package/dist/atlas/index.js.map +1 -1
  90. package/dist/atlas/link-prediction.d.ts +1 -1
  91. package/dist/atlas/link-prediction.d.ts.map +1 -1
  92. package/dist/atlas/link-prediction.js.map +1 -1
  93. package/dist/atlas/model.js.map +1 -1
  94. package/dist/atlas/oscillators/bridges-coarse.d.ts.map +1 -1
  95. package/dist/atlas/oscillators/bridges-coarse.js +0 -1
  96. package/dist/atlas/oscillators/bridges-coarse.js.map +1 -1
  97. package/dist/atlas/oscillators/bridges-exact.d.ts.map +1 -1
  98. package/dist/atlas/oscillators/bridges-exact.js +0 -3
  99. package/dist/atlas/oscillators/bridges-exact.js.map +1 -1
  100. package/dist/atlas/oscillators/bridges-limits.d.ts.map +1 -1
  101. package/dist/atlas/oscillators/bridges-limits.js +0 -2
  102. package/dist/atlas/oscillators/bridges-limits.js.map +1 -1
  103. package/dist/atlas/oscillators/dimensions.js.map +1 -1
  104. package/dist/atlas/oscillators/index.d.ts +1 -16
  105. package/dist/atlas/oscillators/index.d.ts.map +1 -1
  106. package/dist/atlas/oscillators/index.js.map +1 -1
  107. package/dist/atlas/oscillators/limit-witnesses.js.map +1 -1
  108. package/dist/atlas/oscillators/models.js.map +1 -1
  109. package/dist/atlas/oscillators/norm-transport-witness.js.map +1 -1
  110. package/dist/atlas/oscillators/norm-transport.js.map +1 -1
  111. package/dist/atlas/oscillators/norms.js.map +1 -1
  112. package/dist/atlas/oscillators/pendulum-motion.js.map +1 -1
  113. package/dist/atlas/oscillators/phase-carriage.js.map +1 -1
  114. package/dist/atlas/oscillators/phase-translation.js.map +1 -1
  115. package/dist/atlas/oscillators/position-translation.js.map +1 -1
  116. package/dist/atlas/oscillators/rejections.js.map +1 -1
  117. package/dist/atlas/path-bound.js.map +1 -1
  118. package/dist/atlas/physjs-entries.generated.d.ts +1601 -220
  119. package/dist/atlas/physjs-entries.generated.d.ts.map +1 -1
  120. package/dist/atlas/physjs-entries.generated.js +1854 -345
  121. package/dist/atlas/physjs-entries.generated.js.map +1 -1
  122. package/dist/atlas/physjs-ref.d.ts +151 -117
  123. package/dist/atlas/physjs-ref.d.ts.map +1 -1
  124. package/dist/atlas/physjs-ref.js +244 -211
  125. package/dist/atlas/physjs-ref.js.map +1 -1
  126. package/dist/atlas/physjs-reviewed.d.ts +31 -0
  127. package/dist/atlas/physjs-reviewed.d.ts.map +1 -0
  128. package/dist/atlas/physjs-reviewed.js +194 -0
  129. package/dist/atlas/physjs-reviewed.js.map +1 -0
  130. package/dist/atlas/poster/associations.js.map +1 -1
  131. package/dist/atlas/poster/derivations.js.map +1 -1
  132. package/dist/atlas/poster/statements.js.map +1 -1
  133. package/dist/atlas/proof-target.d.ts +16 -8
  134. package/dist/atlas/proof-target.d.ts.map +1 -1
  135. package/dist/atlas/proof-target.js +34 -31
  136. package/dist/atlas/proof-target.js.map +1 -1
  137. package/dist/atlas/public.d.ts +2 -1
  138. package/dist/atlas/public.d.ts.map +1 -1
  139. package/dist/atlas/public.js +2 -1
  140. package/dist/atlas/public.js.map +1 -1
  141. package/dist/atlas/regime.js.map +1 -1
  142. package/dist/atlas/serialize.d.ts +18 -12
  143. package/dist/atlas/serialize.d.ts.map +1 -1
  144. package/dist/atlas/serialize.js +28 -18
  145. package/dist/atlas/serialize.js.map +1 -1
  146. package/dist/atlas/statement.js.map +1 -1
  147. package/dist/atlas/translation-registry.js.map +1 -1
  148. package/dist/atlas/translation.js.map +1 -1
  149. package/dist/atlas/types.d.ts +9 -2
  150. package/dist/atlas/types.d.ts.map +1 -1
  151. package/dist/atlas/types.js +1 -1
  152. package/dist/atlas/types.js.map +1 -1
  153. package/dist/atlas/waves/bridges-closure.d.ts.map +1 -1
  154. package/dist/atlas/waves/bridges-closure.js +0 -3
  155. package/dist/atlas/waves/bridges-closure.js.map +1 -1
  156. package/dist/atlas/waves/bridges.d.ts.map +1 -1
  157. package/dist/atlas/waves/bridges.js +0 -4
  158. package/dist/atlas/waves/bridges.js.map +1 -1
  159. package/dist/atlas/waves/index.d.ts +1 -1
  160. package/dist/atlas/waves/index.d.ts.map +1 -1
  161. package/dist/atlas/waves/index.js.map +1 -1
  162. package/dist/atlas/waves/models.js.map +1 -1
  163. package/dist/atlas/waves/numerics.js.map +1 -1
  164. package/dist/atlas/witness-artifact.js.map +1 -1
  165. package/dist/atlas/witness-dominance.d.ts +4 -3
  166. package/dist/atlas/witness-dominance.d.ts.map +1 -1
  167. package/dist/atlas/witness-dominance.js +15 -5
  168. package/dist/atlas/witness-dominance.js.map +1 -1
  169. package/dist/atlas/witness-numeric.d.ts +8 -4
  170. package/dist/atlas/witness-numeric.d.ts.map +1 -1
  171. package/dist/atlas/witness-numeric.js +27 -2
  172. package/dist/atlas/witness-numeric.js.map +1 -1
  173. package/dist/atlas/witness-result.d.ts +7 -1
  174. package/dist/atlas/witness-result.d.ts.map +1 -1
  175. package/dist/atlas/witness-result.js.map +1 -1
  176. package/dist/atlas/witness-specs.js.map +1 -1
  177. package/dist/atlas/witness-symbolic.js.map +1 -1
  178. package/dist/atlas/witnesses/quantum-support.js.map +1 -1
  179. package/dist/bridges/caller-table.d.ts +1 -1
  180. package/dist/bridges/caller-table.d.ts.map +1 -1
  181. package/dist/bridges/caller-table.js.map +1 -1
  182. package/dist/bridges/carrier-sign.d.ts.map +1 -1
  183. package/dist/bridges/carrier-sign.js +8 -3
  184. package/dist/bridges/carrier-sign.js.map +1 -1
  185. package/dist/bridges/catalog-adapter.d.ts +12 -3
  186. package/dist/bridges/catalog-adapter.d.ts.map +1 -1
  187. package/dist/bridges/catalog-adapter.js +22 -14
  188. package/dist/bridges/catalog-adapter.js.map +1 -1
  189. package/dist/bridges/catalog-load.d.ts +19 -2
  190. package/dist/bridges/catalog-load.d.ts.map +1 -1
  191. package/dist/bridges/catalog-load.js +233 -14
  192. package/dist/bridges/catalog-load.js.map +1 -1
  193. package/dist/bridges/catalog-types.d.ts +96 -27
  194. package/dist/bridges/catalog-types.d.ts.map +1 -1
  195. package/dist/bridges/catalog-types.js.map +1 -1
  196. package/dist/bridges/coefficient-statement.js +1 -5
  197. package/dist/bridges/coefficient-statement.js.map +1 -1
  198. package/dist/bridges/confrontation-coverage.js.map +1 -1
  199. package/dist/bridges/confrontations.d.ts +1 -1
  200. package/dist/bridges/confrontations.d.ts.map +1 -1
  201. package/dist/bridges/confrontations.js +1 -1
  202. package/dist/bridges/confrontations.js.map +1 -1
  203. package/dist/bridges/evaluation-errors.d.ts +89 -0
  204. package/dist/bridges/evaluation-errors.d.ts.map +1 -0
  205. package/dist/bridges/evaluation-errors.js +136 -0
  206. package/dist/bridges/evaluation-errors.js.map +1 -0
  207. package/dist/bridges/evaluator-inputs.d.ts +5 -3
  208. package/dist/bridges/evaluator-inputs.d.ts.map +1 -1
  209. package/dist/bridges/evaluator-inputs.js +24 -24
  210. package/dist/bridges/evaluator-inputs.js.map +1 -1
  211. package/dist/bridges/evaluators.d.ts +48 -8
  212. package/dist/bridges/evaluators.d.ts.map +1 -1
  213. package/dist/bridges/evaluators.js +173 -38
  214. package/dist/bridges/evaluators.js.map +1 -1
  215. package/dist/bridges/expr-parse.d.ts +38 -7
  216. package/dist/bridges/expr-parse.d.ts.map +1 -1
  217. package/dist/bridges/expr-parse.js +129 -156
  218. package/dist/bridges/expr-parse.js.map +1 -1
  219. package/dist/bridges/holds.d.ts +16 -8
  220. package/dist/bridges/holds.d.ts.map +1 -1
  221. package/dist/bridges/holds.js +130 -236
  222. package/dist/bridges/holds.js.map +1 -1
  223. package/dist/bridges/index.d.ts +15 -14
  224. package/dist/bridges/index.d.ts.map +1 -1
  225. package/dist/bridges/index.js +14 -15
  226. package/dist/bridges/index.js.map +1 -1
  227. package/dist/bridges/input-contract.d.ts +65 -0
  228. package/dist/bridges/input-contract.d.ts.map +1 -0
  229. package/dist/bridges/input-contract.js +97 -0
  230. package/dist/bridges/input-contract.js.map +1 -0
  231. package/dist/bridges/membership.d.ts +5 -3
  232. package/dist/bridges/membership.d.ts.map +1 -1
  233. package/dist/bridges/membership.js +5 -6
  234. package/dist/bridges/membership.js.map +1 -1
  235. package/dist/bridges/notices.d.ts +11 -0
  236. package/dist/bridges/notices.d.ts.map +1 -0
  237. package/dist/bridges/notices.js +22 -0
  238. package/dist/bridges/notices.js.map +1 -0
  239. package/dist/bridges/observations/types.js.map +1 -1
  240. package/dist/bridges/rejected.d.ts +11 -17
  241. package/dist/bridges/rejected.d.ts.map +1 -1
  242. package/dist/bridges/rejected.js +13 -68
  243. package/dist/bridges/rejected.js.map +1 -1
  244. package/dist/bridges/relation-eval.d.ts +5 -6
  245. package/dist/bridges/relation-eval.d.ts.map +1 -1
  246. package/dist/bridges/relation-eval.js +9 -38
  247. package/dist/bridges/relation-eval.js.map +1 -1
  248. package/dist/bridges/rhs-registry.js.map +1 -1
  249. package/dist/bridges/sensitivity.d.ts +11 -3
  250. package/dist/bridges/sensitivity.d.ts.map +1 -1
  251. package/dist/bridges/sensitivity.js +24 -10
  252. package/dist/bridges/sensitivity.js.map +1 -1
  253. package/dist/bridges/tensor-index.js.map +1 -1
  254. package/dist/bridges/types.d.ts +1 -7
  255. package/dist/bridges/types.d.ts.map +1 -1
  256. package/dist/bridges/types.js +1 -4
  257. package/dist/bridges/types.js.map +1 -1
  258. package/dist/canonical/canonical-equation.d.ts +31 -0
  259. package/dist/canonical/canonical-equation.d.ts.map +1 -1
  260. package/dist/canonical/canonical-equation.js.map +1 -1
  261. package/dist/canonical/dimensional-fields.js.map +1 -1
  262. package/dist/canonical/entries/_l1-build.js.map +1 -1
  263. package/dist/canonical/entries/atomic.d.ts.map +1 -1
  264. package/dist/canonical/entries/atomic.js +11 -1
  265. package/dist/canonical/entries/atomic.js.map +1 -1
  266. package/dist/canonical/entries/condensed-matter.d.ts.map +1 -1
  267. package/dist/canonical/entries/condensed-matter.js +7 -4
  268. package/dist/canonical/entries/condensed-matter.js.map +1 -1
  269. package/dist/canonical/entries/dimensional-classics.d.ts.map +1 -1
  270. package/dist/canonical/entries/dimensional-classics.js +50 -2
  271. package/dist/canonical/entries/dimensional-classics.js.map +1 -1
  272. package/dist/canonical/entries/electromagnetism.d.ts.map +1 -1
  273. package/dist/canonical/entries/electromagnetism.js +32 -2
  274. package/dist/canonical/entries/electromagnetism.js.map +1 -1
  275. package/dist/canonical/entries/fluids-waves.d.ts.map +1 -1
  276. package/dist/canonical/entries/fluids-waves.js +34 -0
  277. package/dist/canonical/entries/fluids-waves.js.map +1 -1
  278. package/dist/canonical/entries/mechanics.d.ts.map +1 -1
  279. package/dist/canonical/entries/mechanics.js +24 -0
  280. package/dist/canonical/entries/mechanics.js.map +1 -1
  281. package/dist/canonical/entries/nonmonomial.d.ts.map +1 -1
  282. package/dist/canonical/entries/nonmonomial.js +42 -24
  283. package/dist/canonical/entries/nonmonomial.js.map +1 -1
  284. package/dist/canonical/entries/relativity.d.ts.map +1 -1
  285. package/dist/canonical/entries/relativity.js +6 -0
  286. package/dist/canonical/entries/relativity.js.map +1 -1
  287. package/dist/canonical/entries/statistical-mechanics.d.ts.map +1 -1
  288. package/dist/canonical/entries/statistical-mechanics.js +24 -5
  289. package/dist/canonical/entries/statistical-mechanics.js.map +1 -1
  290. package/dist/canonical/entries/thermo-nuclear-cosmo.d.ts.map +1 -1
  291. package/dist/canonical/entries/thermo-nuclear-cosmo.js +15 -0
  292. package/dist/canonical/entries/thermo-nuclear-cosmo.js.map +1 -1
  293. package/dist/canonical/linkage.d.ts +29 -4
  294. package/dist/canonical/linkage.d.ts.map +1 -1
  295. package/dist/canonical/linkage.js +31 -29
  296. package/dist/canonical/linkage.js.map +1 -1
  297. package/dist/canonical/normal-form.d.ts +0 -8
  298. package/dist/canonical/normal-form.d.ts.map +1 -1
  299. package/dist/canonical/normal-form.js +17 -12
  300. package/dist/canonical/normal-form.js.map +1 -1
  301. package/dist/canonical/registry.js.map +1 -1
  302. package/dist/canonical/residual.js.map +1 -1
  303. package/dist/canonical/seed-l-layer.d.ts +7 -1
  304. package/dist/canonical/seed-l-layer.d.ts.map +1 -1
  305. package/dist/canonical/seed-l-layer.js +7 -1
  306. package/dist/canonical/seed-l-layer.js.map +1 -1
  307. package/dist/canonical/structural.d.ts +21 -0
  308. package/dist/canonical/structural.d.ts.map +1 -1
  309. package/dist/canonical/structural.js +24 -4
  310. package/dist/canonical/structural.js.map +1 -1
  311. package/dist/cases/brownian-sphere.js +4 -4
  312. package/dist/cases/brownian-sphere.js.map +1 -1
  313. package/dist/cases/damped-resonator.js +2 -2
  314. package/dist/cases/damped-resonator.js.map +1 -1
  315. package/dist/cases/index.d.ts +9 -2
  316. package/dist/cases/index.d.ts.map +1 -1
  317. package/dist/cases/index.js +26 -7
  318. package/dist/cases/index.js.map +1 -1
  319. package/dist/cases/kepler-rv.js +6 -6
  320. package/dist/cases/kepler-rv.js.map +1 -1
  321. package/dist/cases/lumped-cooling.js +1 -1
  322. package/dist/cases/lumped-cooling.js.map +1 -1
  323. package/dist/cases/quadrature.js.map +1 -1
  324. package/dist/cases/resistor-noise.js +3 -3
  325. package/dist/cases/resistor-noise.js.map +1 -1
  326. package/dist/cases/skin-depth.js.map +1 -1
  327. package/dist/cases/types.js.map +1 -1
  328. package/dist/cli/args.d.ts +7 -2
  329. package/dist/cli/args.d.ts.map +1 -1
  330. package/dist/cli/args.js +18 -2
  331. package/dist/cli/args.js.map +1 -1
  332. package/dist/cli/bindings.d.ts +13 -0
  333. package/dist/cli/bindings.d.ts.map +1 -0
  334. package/dist/cli/bindings.js +32 -0
  335. package/dist/cli/bindings.js.map +1 -0
  336. package/dist/cli/closed-form-range.js.map +1 -1
  337. package/dist/cli/command.js.map +1 -1
  338. package/dist/cli/commands/_atlas-map.d.ts +3 -3
  339. package/dist/cli/commands/_atlas-map.d.ts.map +1 -1
  340. package/dist/cli/commands/_atlas-map.js +43 -18
  341. package/dist/cli/commands/_atlas-map.js.map +1 -1
  342. package/dist/cli/commands/_atlas-route.js.map +1 -1
  343. package/dist/cli/commands/_discovery-opts.d.ts +2 -1
  344. package/dist/cli/commands/_discovery-opts.d.ts.map +1 -1
  345. package/dist/cli/commands/_discovery-opts.js +48 -18
  346. package/dist/cli/commands/_discovery-opts.js.map +1 -1
  347. package/dist/cli/commands/atlas.d.ts.map +1 -1
  348. package/dist/cli/commands/atlas.js +7 -12
  349. package/dist/cli/commands/atlas.js.map +1 -1
  350. package/dist/cli/commands/audit.d.ts.map +1 -1
  351. package/dist/cli/commands/audit.js +13 -21
  352. package/dist/cli/commands/audit.js.map +1 -1
  353. package/dist/cli/commands/axes.js.map +1 -1
  354. package/dist/cli/commands/candidates.d.ts.map +1 -1
  355. package/dist/cli/commands/candidates.js +16 -8
  356. package/dist/cli/commands/candidates.js.map +1 -1
  357. package/dist/cli/commands/canonical.js.map +1 -1
  358. package/dist/cli/commands/chain.js +1 -1
  359. package/dist/cli/commands/chain.js.map +1 -1
  360. package/dist/cli/commands/confront.d.ts.map +1 -1
  361. package/dist/cli/commands/confront.js +22 -14
  362. package/dist/cli/commands/confront.js.map +1 -1
  363. package/dist/cli/commands/connectors.d.ts.map +1 -1
  364. package/dist/cli/commands/connectors.js +8 -9
  365. package/dist/cli/commands/connectors.js.map +1 -1
  366. package/dist/cli/commands/coverage.js.map +1 -1
  367. package/dist/cli/commands/derive.d.ts.map +1 -1
  368. package/dist/cli/commands/derive.js +50 -26
  369. package/dist/cli/commands/derive.js.map +1 -1
  370. package/dist/cli/commands/discover.d.ts.map +1 -1
  371. package/dist/cli/commands/discover.js +18 -13
  372. package/dist/cli/commands/discover.js.map +1 -1
  373. package/dist/cli/commands/eval.d.ts.map +1 -1
  374. package/dist/cli/commands/eval.js +29 -26
  375. package/dist/cli/commands/eval.js.map +1 -1
  376. package/dist/cli/commands/evaluate.d.ts +1 -35
  377. package/dist/cli/commands/evaluate.d.ts.map +1 -1
  378. package/dist/cli/commands/evaluate.js +99 -208
  379. package/dist/cli/commands/evaluate.js.map +1 -1
  380. package/dist/cli/commands/explain.d.ts.map +1 -1
  381. package/dist/cli/commands/explain.js +57 -45
  382. package/dist/cli/commands/explain.js.map +1 -1
  383. package/dist/cli/commands/frontier.js.map +1 -1
  384. package/dist/cli/commands/ground.d.ts.map +1 -1
  385. package/dist/cli/commands/ground.js +41 -11
  386. package/dist/cli/commands/ground.js.map +1 -1
  387. package/dist/cli/commands/index.js.map +1 -1
  388. package/dist/cli/commands/map.d.ts.map +1 -1
  389. package/dist/cli/commands/map.js +84 -92
  390. package/dist/cli/commands/map.js.map +1 -1
  391. package/dist/cli/commands/metric.d.ts.map +1 -1
  392. package/dist/cli/commands/metric.js +53 -15
  393. package/dist/cli/commands/metric.js.map +1 -1
  394. package/dist/cli/commands/path.js +4 -4
  395. package/dist/cli/commands/path.js.map +1 -1
  396. package/dist/cli/commands/predict.js.map +1 -1
  397. package/dist/cli/commands/priority.js.map +1 -1
  398. package/dist/cli/commands/probe.d.ts.map +1 -1
  399. package/dist/cli/commands/probe.js +50 -26
  400. package/dist/cli/commands/probe.js.map +1 -1
  401. package/dist/cli/commands/recover.js +1 -1
  402. package/dist/cli/commands/recover.js.map +1 -1
  403. package/dist/cli/commands/regime.d.ts +5 -4
  404. package/dist/cli/commands/regime.d.ts.map +1 -1
  405. package/dist/cli/commands/regime.js +25 -27
  406. package/dist/cli/commands/regime.js.map +1 -1
  407. package/dist/cli/commands/retrieve.d.ts.map +1 -1
  408. package/dist/cli/commands/retrieve.js +22 -14
  409. package/dist/cli/commands/retrieve.js.map +1 -1
  410. package/dist/cli/commands/search.d.ts.map +1 -1
  411. package/dist/cli/commands/search.js +8 -4
  412. package/dist/cli/commands/search.js.map +1 -1
  413. package/dist/cli/commands/symbolic.d.ts.map +1 -1
  414. package/dist/cli/commands/symbolic.js +14 -7
  415. package/dist/cli/commands/symbolic.js.map +1 -1
  416. package/dist/cli/commands/testplan.js +4 -4
  417. package/dist/cli/commands/testplan.js.map +1 -1
  418. package/dist/cli/conventions.d.ts +6 -7
  419. package/dist/cli/conventions.d.ts.map +1 -1
  420. package/dist/cli/conventions.js +19 -28
  421. package/dist/cli/conventions.js.map +1 -1
  422. package/dist/cli/determination.js.map +1 -1
  423. package/dist/cli/errors.js.map +1 -1
  424. package/dist/cli/euler-guard.d.ts +13 -2
  425. package/dist/cli/euler-guard.d.ts.map +1 -1
  426. package/dist/cli/euler-guard.js +17 -3
  427. package/dist/cli/euler-guard.js.map +1 -1
  428. package/dist/cli/eval-numbers.d.ts +4 -9
  429. package/dist/cli/eval-numbers.d.ts.map +1 -1
  430. package/dist/cli/eval-numbers.js +11 -41
  431. package/dist/cli/eval-numbers.js.map +1 -1
  432. package/dist/cli/expr-print.d.ts +29 -2
  433. package/dist/cli/expr-print.d.ts.map +1 -1
  434. package/dist/cli/expr-print.js +46 -2
  435. package/dist/cli/expr-print.js.map +1 -1
  436. package/dist/cli/flag-help.js.map +1 -1
  437. package/dist/cli/graphs.js.map +1 -1
  438. package/dist/cli/library-defaults.d.ts +19 -0
  439. package/dist/cli/library-defaults.d.ts.map +1 -0
  440. package/dist/cli/library-defaults.js +22 -0
  441. package/dist/cli/library-defaults.js.map +1 -0
  442. package/dist/cli/main.js +7 -3
  443. package/dist/cli/main.js.map +1 -1
  444. package/dist/cli/map-evidence.js.map +1 -1
  445. package/dist/cli/output.d.ts +3 -6
  446. package/dist/cli/output.d.ts.map +1 -1
  447. package/dist/cli/output.js.map +1 -1
  448. package/dist/cli/published-url.d.ts +2 -0
  449. package/dist/cli/published-url.d.ts.map +1 -1
  450. package/dist/cli/published-url.js +5 -0
  451. package/dist/cli/published-url.js.map +1 -1
  452. package/dist/cli/record-reach.d.ts +6 -0
  453. package/dist/cli/record-reach.d.ts.map +1 -1
  454. package/dist/cli/record-reach.js +16 -10
  455. package/dist/cli/record-reach.js.map +1 -1
  456. package/dist/cli/record-tables.d.ts +2 -1
  457. package/dist/cli/record-tables.d.ts.map +1 -1
  458. package/dist/cli/record-tables.js +8 -3
  459. package/dist/cli/record-tables.js.map +1 -1
  460. package/dist/cli/record.d.ts.map +1 -1
  461. package/dist/cli/record.js +31 -12
  462. package/dist/cli/record.js.map +1 -1
  463. package/dist/cli/search-index.d.ts +5 -0
  464. package/dist/cli/search-index.d.ts.map +1 -1
  465. package/dist/cli/search-index.js +12 -1
  466. package/dist/cli/search-index.js.map +1 -1
  467. package/dist/cli/statuses.js.map +1 -1
  468. package/dist/cli/top-level-help.js.map +1 -1
  469. package/dist/cli/version.js.map +1 -1
  470. package/dist/cli-api.d.ts +57 -18
  471. package/dist/cli-api.d.ts.map +1 -1
  472. package/dist/cli-api.js +49 -21
  473. package/dist/cli-api.js.map +1 -1
  474. package/dist/composition/adjudication.d.ts +8 -30
  475. package/dist/composition/adjudication.d.ts.map +1 -1
  476. package/dist/composition/adjudication.js +15 -67
  477. package/dist/composition/adjudication.js.map +1 -1
  478. package/dist/composition/aliases.d.ts +1 -1
  479. package/dist/composition/aliases.d.ts.map +1 -1
  480. package/dist/composition/aliases.js +10 -20
  481. package/dist/composition/aliases.js.map +1 -1
  482. package/dist/composition/audit-coverage.d.ts +2 -0
  483. package/dist/composition/audit-coverage.d.ts.map +1 -1
  484. package/dist/composition/audit-coverage.js.map +1 -1
  485. package/dist/composition/axes.d.ts +12 -0
  486. package/dist/composition/axes.d.ts.map +1 -1
  487. package/dist/composition/axes.js +18 -6
  488. package/dist/composition/axes.js.map +1 -1
  489. package/dist/composition/axis-audit.js.map +1 -1
  490. package/dist/composition/bridge-analysis.d.ts +0 -14
  491. package/dist/composition/bridge-analysis.d.ts.map +1 -1
  492. package/dist/composition/bridge-analysis.js +66 -57
  493. package/dist/composition/bridge-analysis.js.map +1 -1
  494. package/dist/composition/bridge-prediction.d.ts +5 -1
  495. package/dist/composition/bridge-prediction.d.ts.map +1 -1
  496. package/dist/composition/bridge-prediction.js +12 -16
  497. package/dist/composition/bridge-prediction.js.map +1 -1
  498. package/dist/composition/buckingham-filter.js.map +1 -1
  499. package/dist/composition/canonical-compare.d.ts.map +1 -1
  500. package/dist/composition/canonical-compare.js +12 -2
  501. package/dist/composition/canonical-compare.js.map +1 -1
  502. package/dist/composition/canonical-graph.d.ts +15 -18
  503. package/dist/composition/canonical-graph.d.ts.map +1 -1
  504. package/dist/composition/canonical-graph.js +59 -85
  505. package/dist/composition/canonical-graph.js.map +1 -1
  506. package/dist/composition/canonical-json.js.map +1 -1
  507. package/dist/composition/canonical-prefactors.d.ts +10 -29
  508. package/dist/composition/canonical-prefactors.d.ts.map +1 -1
  509. package/dist/composition/canonical-prefactors.js +15 -202
  510. package/dist/composition/canonical-prefactors.js.map +1 -1
  511. package/dist/composition/catalog-graph.d.ts.map +1 -1
  512. package/dist/composition/catalog-graph.js +6 -20
  513. package/dist/composition/catalog-graph.js.map +1 -1
  514. package/dist/composition/chain-candidate.d.ts +2 -0
  515. package/dist/composition/chain-candidate.d.ts.map +1 -1
  516. package/dist/composition/chain-candidate.js +2 -0
  517. package/dist/composition/chain-candidate.js.map +1 -1
  518. package/dist/composition/chain-match.js.map +1 -1
  519. package/dist/composition/chain-regime.js.map +1 -1
  520. package/dist/composition/chain-result.js.map +1 -1
  521. package/dist/composition/compose-surface.js.map +1 -1
  522. package/dist/composition/compose-symbolic.js.map +1 -1
  523. package/dist/composition/compose.d.ts.map +1 -1
  524. package/dist/composition/compose.js +154 -36
  525. package/dist/composition/compose.js.map +1 -1
  526. package/dist/composition/composition-recovery.js.map +1 -1
  527. package/dist/composition/consequence.d.ts.map +1 -1
  528. package/dist/composition/consequence.js +15 -6
  529. package/dist/composition/consequence.js.map +1 -1
  530. package/dist/composition/consistency.js.map +1 -1
  531. package/dist/composition/descriptor.d.ts +1 -1
  532. package/dist/composition/descriptor.d.ts.map +1 -1
  533. package/dist/composition/descriptor.js.map +1 -1
  534. package/dist/composition/dimension-adjacency.js.map +1 -1
  535. package/dist/composition/discovery.d.ts +67 -7
  536. package/dist/composition/discovery.d.ts.map +1 -1
  537. package/dist/composition/discovery.js +83 -23
  538. package/dist/composition/discovery.js.map +1 -1
  539. package/dist/composition/edge.d.ts +19 -22
  540. package/dist/composition/edge.d.ts.map +1 -1
  541. package/dist/composition/edge.js +25 -28
  542. package/dist/composition/edge.js.map +1 -1
  543. package/dist/composition/enumerate.d.ts +2 -2
  544. package/dist/composition/enumerate.d.ts.map +1 -1
  545. package/dist/composition/enumerate.js.map +1 -1
  546. package/dist/composition/evaluate-relation.d.ts +29 -5
  547. package/dist/composition/evaluate-relation.d.ts.map +1 -1
  548. package/dist/composition/evaluate-relation.js +100 -72
  549. package/dist/composition/evaluate-relation.js.map +1 -1
  550. package/dist/composition/explain.d.ts +14 -4
  551. package/dist/composition/explain.d.ts.map +1 -1
  552. package/dist/composition/explain.js +53 -19
  553. package/dist/composition/explain.js.map +1 -1
  554. package/dist/composition/expr-eval.d.ts.map +1 -1
  555. package/dist/composition/expr-eval.js +2 -1
  556. package/dist/composition/expr-eval.js.map +1 -1
  557. package/dist/composition/expr-simplify.d.ts.map +1 -1
  558. package/dist/composition/expr-simplify.js +9 -39
  559. package/dist/composition/expr-simplify.js.map +1 -1
  560. package/dist/composition/expr-subst.js.map +1 -1
  561. package/dist/composition/formula-shape.d.ts +9 -0
  562. package/dist/composition/formula-shape.d.ts.map +1 -1
  563. package/dist/composition/formula-shape.js +54 -0
  564. package/dist/composition/formula-shape.js.map +1 -1
  565. package/dist/composition/frontier-account.d.ts +3 -2
  566. package/dist/composition/frontier-account.d.ts.map +1 -1
  567. package/dist/composition/frontier-account.js +7 -3
  568. package/dist/composition/frontier-account.js.map +1 -1
  569. package/dist/composition/graph-viz-svg.js.map +1 -1
  570. package/dist/composition/graph-viz.js.map +1 -1
  571. package/dist/composition/grounding.js.map +1 -1
  572. package/dist/composition/identifiability.js.map +1 -1
  573. package/dist/composition/index.d.ts +9 -5
  574. package/dist/composition/index.d.ts.map +1 -1
  575. package/dist/composition/index.js +7 -4
  576. package/dist/composition/index.js.map +1 -1
  577. package/dist/composition/mathts-quiet.d.ts +28 -0
  578. package/dist/composition/mathts-quiet.d.ts.map +1 -0
  579. package/dist/composition/mathts-quiet.js +56 -0
  580. package/dist/composition/mathts-quiet.js.map +1 -0
  581. package/dist/composition/mathts-scalar-symbols.d.ts.map +1 -1
  582. package/dist/composition/mathts-scalar-symbols.js +18 -34
  583. package/dist/composition/mathts-scalar-symbols.js.map +1 -1
  584. package/dist/composition/not-composable-seeds.d.ts +3 -1
  585. package/dist/composition/not-composable-seeds.d.ts.map +1 -1
  586. package/dist/composition/not-composable-seeds.js +2 -0
  587. package/dist/composition/not-composable-seeds.js.map +1 -1
  588. package/dist/composition/probe/backend-protocol.js.map +1 -1
  589. package/dist/composition/probe/candidate-store.js.map +1 -1
  590. package/dist/composition/probe/corpus.js.map +1 -1
  591. package/dist/composition/probe/dataset.js.map +1 -1
  592. package/dist/composition/probe/experiment-design.js.map +1 -1
  593. package/dist/composition/probe/expression-gaps.js.map +1 -1
  594. package/dist/composition/probe/falsify.d.ts +14 -3
  595. package/dist/composition/probe/falsify.d.ts.map +1 -1
  596. package/dist/composition/probe/falsify.js +14 -27
  597. package/dist/composition/probe/falsify.js.map +1 -1
  598. package/dist/composition/probe/fingerprint.js.map +1 -1
  599. package/dist/composition/probe/fit.d.ts +1 -1
  600. package/dist/composition/probe/fit.d.ts.map +1 -1
  601. package/dist/composition/probe/fit.js +2 -1
  602. package/dist/composition/probe/fit.js.map +1 -1
  603. package/dist/composition/probe/frontier.js.map +1 -1
  604. package/dist/composition/probe/generator.js.map +1 -1
  605. package/dist/composition/probe/index.d.ts +4 -2
  606. package/dist/composition/probe/index.d.ts.map +1 -1
  607. package/dist/composition/probe/index.js +4 -2
  608. package/dist/composition/probe/index.js.map +1 -1
  609. package/dist/composition/probe/limits.js.map +1 -1
  610. package/dist/composition/probe/metadata.js.map +1 -1
  611. package/dist/composition/probe/pipeline.d.ts +5 -0
  612. package/dist/composition/probe/pipeline.d.ts.map +1 -1
  613. package/dist/composition/probe/pipeline.js +13 -6
  614. package/dist/composition/probe/pipeline.js.map +1 -1
  615. package/dist/composition/probe/problem.d.ts +8 -0
  616. package/dist/composition/probe/problem.d.ts.map +1 -1
  617. package/dist/composition/probe/problem.js +78 -12
  618. package/dist/composition/probe/problem.js.map +1 -1
  619. package/dist/composition/probe/report.js.map +1 -1
  620. package/dist/composition/probe/residual.js.map +1 -1
  621. package/dist/composition/probe/run-manifest.js +2 -2
  622. package/dist/composition/probe/run-manifest.js.map +1 -1
  623. package/dist/composition/probe/scoring.d.ts +2 -1
  624. package/dist/composition/probe/scoring.d.ts.map +1 -1
  625. package/dist/composition/probe/scoring.js +21 -7
  626. package/dist/composition/probe/scoring.js.map +1 -1
  627. package/dist/composition/probe/search-budget.js.map +1 -1
  628. package/dist/composition/probe/serialize.js.map +1 -1
  629. package/dist/composition/probe/structure.js.map +1 -1
  630. package/dist/composition/probe/study.d.ts +4 -3
  631. package/dist/composition/probe/study.d.ts.map +1 -1
  632. package/dist/composition/probe/study.js +5 -3
  633. package/dist/composition/probe/study.js.map +1 -1
  634. package/dist/composition/probe/types.d.ts +3 -1
  635. package/dist/composition/probe/types.d.ts.map +1 -1
  636. package/dist/composition/probe/types.js +2 -0
  637. package/dist/composition/probe/types.js.map +1 -1
  638. package/dist/composition/proposed-bridges.d.ts +11 -4
  639. package/dist/composition/proposed-bridges.d.ts.map +1 -1
  640. package/dist/composition/proposed-bridges.js +14 -6
  641. package/dist/composition/proposed-bridges.js.map +1 -1
  642. package/dist/composition/quantities.d.ts +0 -4
  643. package/dist/composition/quantities.d.ts.map +1 -1
  644. package/dist/composition/quantities.js +5 -5
  645. package/dist/composition/quantities.js.map +1 -1
  646. package/dist/composition/quantity.d.ts +18 -2
  647. package/dist/composition/quantity.d.ts.map +1 -1
  648. package/dist/composition/quantity.js +35 -6
  649. package/dist/composition/quantity.js.map +1 -1
  650. package/dist/composition/representative-values.js.map +1 -1
  651. package/dist/composition/retrodiction.d.ts +18 -0
  652. package/dist/composition/retrodiction.d.ts.map +1 -1
  653. package/dist/composition/retrodiction.js +37 -7
  654. package/dist/composition/retrodiction.js.map +1 -1
  655. package/dist/composition/uncertainty.js.map +1 -1
  656. package/dist/composition/user-equation.d.ts +11 -7
  657. package/dist/composition/user-equation.d.ts.map +1 -1
  658. package/dist/composition/user-equation.js +24 -26
  659. package/dist/composition/user-equation.js.map +1 -1
  660. package/dist/core/axes-registry.d.ts +8 -5
  661. package/dist/core/axes-registry.d.ts.map +1 -1
  662. package/dist/core/axes-registry.js.map +1 -1
  663. package/dist/core/cell.js.map +1 -1
  664. package/dist/core/constants.d.ts +35 -12
  665. package/dist/core/constants.d.ts.map +1 -1
  666. package/dist/core/constants.js +46 -15
  667. package/dist/core/constants.js.map +1 -1
  668. package/dist/core/data-file.d.ts +27 -0
  669. package/dist/core/data-file.d.ts.map +1 -0
  670. package/dist/core/data-file.js +48 -0
  671. package/dist/core/data-file.js.map +1 -0
  672. package/dist/core/flux-rules.js +1 -1
  673. package/dist/core/flux-rules.js.map +1 -1
  674. package/dist/core/json-schema.d.ts +27 -0
  675. package/dist/core/json-schema.d.ts.map +1 -0
  676. package/dist/core/json-schema.js +177 -0
  677. package/dist/core/json-schema.js.map +1 -0
  678. package/dist/core/labeled-tensor.d.ts +6 -1
  679. package/dist/core/labeled-tensor.d.ts.map +1 -1
  680. package/dist/core/labeled-tensor.js +18 -8
  681. package/dist/core/labeled-tensor.js.map +1 -1
  682. package/dist/core/regime-registry.d.ts +6 -2
  683. package/dist/core/regime-registry.d.ts.map +1 -1
  684. package/dist/core/regime-registry.js.map +1 -1
  685. package/dist/core/regime-rule-install.js.map +1 -1
  686. package/dist/core/regimes-builtins.js.map +1 -1
  687. package/dist/core/tensor.d.ts +7 -4
  688. package/dist/core/tensor.d.ts.map +1 -1
  689. package/dist/core/tensor.js +40 -8
  690. package/dist/core/tensor.js.map +1 -1
  691. package/dist/core/types.d.ts +3 -2
  692. package/dist/core/types.d.ts.map +1 -1
  693. package/dist/core/types.js +16 -14
  694. package/dist/core/types.js.map +1 -1
  695. package/dist/core/universal-index.js.map +1 -1
  696. package/dist/diff/bridge-ast-gradient.d.ts +4 -5
  697. package/dist/diff/bridge-ast-gradient.d.ts.map +1 -1
  698. package/dist/diff/bridge-ast-gradient.js +16 -23
  699. package/dist/diff/bridge-ast-gradient.js.map +1 -1
  700. package/dist/diff/bridge-gradient.d.ts +24 -80
  701. package/dist/diff/bridge-gradient.d.ts.map +1 -1
  702. package/dist/diff/bridge-gradient.js +21 -98
  703. package/dist/diff/bridge-gradient.js.map +1 -1
  704. package/dist/diff/bridge-specs.d.ts +18 -6
  705. package/dist/diff/bridge-specs.d.ts.map +1 -1
  706. package/dist/diff/bridge-specs.js +17 -5
  707. package/dist/diff/bridge-specs.js.map +1 -1
  708. package/dist/dimensional/algebra.js.map +1 -1
  709. package/dist/dimensional/ast-builders.d.ts +5 -4
  710. package/dist/dimensional/ast-builders.d.ts.map +1 -1
  711. package/dist/dimensional/ast-builders.js +6 -5
  712. package/dist/dimensional/ast-builders.js.map +1 -1
  713. package/dist/dimensional/ast-types.js.map +1 -1
  714. package/dist/dimensional/bridge-check.d.ts.map +1 -1
  715. package/dist/dimensional/bridge-check.js +3 -5
  716. package/dist/dimensional/bridge-check.js.map +1 -1
  717. package/dist/dimensional/buckingham.js.map +1 -1
  718. package/dist/dimensional/connection-validators.d.ts +2 -1
  719. package/dist/dimensional/connection-validators.d.ts.map +1 -1
  720. package/dist/dimensional/connection-validators.js.map +1 -1
  721. package/dist/dimensional/connection.js.map +1 -1
  722. package/dist/dimensional/constant-rows.d.ts +54 -0
  723. package/dist/dimensional/constant-rows.d.ts.map +1 -0
  724. package/dist/dimensional/constant-rows.js +115 -0
  725. package/dist/dimensional/constant-rows.js.map +1 -0
  726. package/dist/dimensional/constants.d.ts +7 -17
  727. package/dist/dimensional/constants.d.ts.map +1 -1
  728. package/dist/dimensional/constants.js +12 -21
  729. package/dist/dimensional/constants.js.map +1 -1
  730. package/dist/dimensional/curvature-composite.js.map +1 -1
  731. package/dist/dimensional/curvature-invariants.js.map +1 -1
  732. package/dist/dimensional/curvature.js.map +1 -1
  733. package/dist/dimensional/dimension-inference.js.map +1 -1
  734. package/dist/dimensional/dimension-spec.d.ts +21 -6
  735. package/dist/dimensional/dimension-spec.d.ts.map +1 -1
  736. package/dist/dimensional/dimension-spec.js +150 -160
  737. package/dist/dimensional/dimension-spec.js.map +1 -1
  738. package/dist/dimensional/einstein-equation.js.map +1 -1
  739. package/dist/dimensional/errors.d.ts +3 -1
  740. package/dist/dimensional/errors.d.ts.map +1 -1
  741. package/dist/dimensional/errors.js +2 -2
  742. package/dist/dimensional/errors.js.map +1 -1
  743. package/dist/dimensional/exact-scale.d.ts +79 -0
  744. package/dist/dimensional/exact-scale.d.ts.map +1 -0
  745. package/dist/dimensional/exact-scale.js +222 -0
  746. package/dist/dimensional/exact-scale.js.map +1 -0
  747. package/dist/dimensional/field-equation-helpers.js.map +1 -1
  748. package/dist/dimensional/formula-names.d.ts +13 -12
  749. package/dist/dimensional/formula-names.d.ts.map +1 -1
  750. package/dist/dimensional/formula-names.js +28 -51
  751. package/dist/dimensional/formula-names.js.map +1 -1
  752. package/dist/dimensional/fresh-label.js.map +1 -1
  753. package/dist/dimensional/friedmann-equation.d.ts +3 -3
  754. package/dist/dimensional/friedmann-equation.js +3 -3
  755. package/dist/dimensional/friedmann-equation.js.map +1 -1
  756. package/dist/dimensional/gauge-field.d.ts +2 -3
  757. package/dist/dimensional/gauge-field.d.ts.map +1 -1
  758. package/dist/dimensional/gauge-field.js +0 -1
  759. package/dist/dimensional/gauge-field.js.map +1 -1
  760. package/dist/dimensional/hyphen-names.d.ts.map +1 -1
  761. package/dist/dimensional/hyphen-names.js +8 -0
  762. package/dist/dimensional/hyphen-names.js.map +1 -1
  763. package/dist/dimensional/killing-validators.js.map +1 -1
  764. package/dist/dimensional/klein-gordon-equation.js.map +1 -1
  765. package/dist/dimensional/metric-validators.d.ts +2 -1
  766. package/dist/dimensional/metric-validators.d.ts.map +1 -1
  767. package/dist/dimensional/metric-validators.js.map +1 -1
  768. package/dist/dimensional/metric.js.map +1 -1
  769. package/dist/dimensional/natural-units.js.map +1 -1
  770. package/dist/dimensional/quantity-registry.d.ts +23 -1
  771. package/dist/dimensional/quantity-registry.d.ts.map +1 -1
  772. package/dist/dimensional/quantity-registry.js +55 -18
  773. package/dist/dimensional/quantity-registry.js.map +1 -1
  774. package/dist/dimensional/rg-flow.js.map +1 -1
  775. package/dist/dimensional/stress-energy-validators.js.map +1 -1
  776. package/dist/dimensional/symbolic-constants.d.ts +63 -19
  777. package/dist/dimensional/symbolic-constants.d.ts.map +1 -1
  778. package/dist/dimensional/symbolic-constants.js +114 -92
  779. package/dist/dimensional/symbolic-constants.js.map +1 -1
  780. package/dist/dimensional/tensor-trace.js.map +1 -1
  781. package/dist/dimensional/tensor.js.map +1 -1
  782. package/dist/dimensional/types.js.map +1 -1
  783. package/dist/dimensional/unit-convention.d.ts +0 -2
  784. package/dist/dimensional/unit-convention.d.ts.map +1 -1
  785. package/dist/dimensional/unit-convention.js +2 -2
  786. package/dist/dimensional/unit-convention.js.map +1 -1
  787. package/dist/dimensional/unit-data.d.ts +70 -0
  788. package/dist/dimensional/unit-data.d.ts.map +1 -0
  789. package/dist/dimensional/unit-data.js +139 -0
  790. package/dist/dimensional/unit-data.js.map +1 -0
  791. package/dist/dimensional/units.d.ts +87 -24
  792. package/dist/dimensional/units.d.ts.map +1 -1
  793. package/dist/dimensional/units.js +290 -295
  794. package/dist/dimensional/units.js.map +1 -1
  795. package/dist/dimensional/validator-registry.js.map +1 -1
  796. package/dist/dimensional/validator.d.ts +0 -16
  797. package/dist/dimensional/validator.d.ts.map +1 -1
  798. package/dist/dimensional/validator.js +65 -29
  799. package/dist/dimensional/validator.js.map +1 -1
  800. package/dist/dimensional/weyl-validators.js.map +1 -1
  801. package/dist/index.d.ts +65 -18
  802. package/dist/index.d.ts.map +1 -1
  803. package/dist/index.js +19 -24
  804. package/dist/index.js.map +1 -1
  805. package/dist/numerical/bianchi-residual.js.map +1 -1
  806. package/dist/numerical/binding-value.d.ts +32 -7
  807. package/dist/numerical/binding-value.d.ts.map +1 -1
  808. package/dist/numerical/binding-value.js +218 -209
  809. package/dist/numerical/binding-value.js.map +1 -1
  810. package/dist/numerical/christoffel-flat.js.map +1 -1
  811. package/dist/numerical/connection-lowering-helpers.js.map +1 -1
  812. package/dist/numerical/covariant-eikonal.d.ts.map +1 -1
  813. package/dist/numerical/covariant-eikonal.js +2 -2
  814. package/dist/numerical/covariant-eikonal.js.map +1 -1
  815. package/dist/numerical/curvature-lowering-helpers.d.ts +20 -0
  816. package/dist/numerical/curvature-lowering-helpers.d.ts.map +1 -1
  817. package/dist/numerical/curvature-lowering-helpers.js +6 -3
  818. package/dist/numerical/curvature-lowering-helpers.js.map +1 -1
  819. package/dist/numerical/derivative-lowering.js.map +1 -1
  820. package/dist/numerical/einstein-equation.js.map +1 -1
  821. package/dist/numerical/engine-registry.js.map +1 -1
  822. package/dist/numerical/errors.d.ts +7 -3
  823. package/dist/numerical/errors.d.ts.map +1 -1
  824. package/dist/numerical/errors.js +5 -5
  825. package/dist/numerical/errors.js.map +1 -1
  826. package/dist/numerical/evaluator-uncertainty.d.ts +34 -0
  827. package/dist/numerical/evaluator-uncertainty.d.ts.map +1 -0
  828. package/dist/numerical/evaluator-uncertainty.js +134 -0
  829. package/dist/numerical/evaluator-uncertainty.js.map +1 -0
  830. package/dist/numerical/formula-contract.d.ts +67 -7
  831. package/dist/numerical/formula-contract.d.ts.map +1 -1
  832. package/dist/numerical/formula-contract.js +68 -42
  833. package/dist/numerical/formula-contract.js.map +1 -1
  834. package/dist/numerical/formula-dimension.d.ts +17 -7
  835. package/dist/numerical/formula-dimension.d.ts.map +1 -1
  836. package/dist/numerical/formula-dimension.js +120 -44
  837. package/dist/numerical/formula-dimension.js.map +1 -1
  838. package/dist/numerical/formula-mathts.d.ts.map +1 -1
  839. package/dist/numerical/formula-mathts.js +10 -3
  840. package/dist/numerical/formula-mathts.js.map +1 -1
  841. package/dist/numerical/formula-registry.d.ts +13 -3
  842. package/dist/numerical/formula-registry.d.ts.map +1 -1
  843. package/dist/numerical/formula-registry.js +7 -2
  844. package/dist/numerical/formula-registry.js.map +1 -1
  845. package/dist/numerical/geodesic-integrator.js.map +1 -1
  846. package/dist/numerical/geometrized.js.map +1 -1
  847. package/dist/numerical/gl4-integrator.d.ts +28 -27
  848. package/dist/numerical/gl4-integrator.d.ts.map +1 -1
  849. package/dist/numerical/gl4-integrator.js +44 -45
  850. package/dist/numerical/gl4-integrator.js.map +1 -1
  851. package/dist/numerical/grid-field.js.map +1 -1
  852. package/dist/numerical/index.js.map +1 -1
  853. package/dist/numerical/input-validation.d.ts +3 -6
  854. package/dist/numerical/input-validation.d.ts.map +1 -1
  855. package/dist/numerical/input-validation.js +4 -8
  856. package/dist/numerical/input-validation.js.map +1 -1
  857. package/dist/numerical/killing.d.ts +8 -5
  858. package/dist/numerical/killing.d.ts.map +1 -1
  859. package/dist/numerical/killing.js.map +1 -1
  860. package/dist/numerical/klein-gordon.js.map +1 -1
  861. package/dist/numerical/kretschmann.js.map +1 -1
  862. package/dist/numerical/lowering-utils.js.map +1 -1
  863. package/dist/numerical/lowering.d.ts.map +1 -1
  864. package/dist/numerical/lowering.js +7 -17
  865. package/dist/numerical/lowering.js.map +1 -1
  866. package/dist/numerical/mathts-engine.d.ts.map +1 -1
  867. package/dist/numerical/mathts-engine.js +11 -6
  868. package/dist/numerical/mathts-engine.js.map +1 -1
  869. package/dist/numerical/metric-inverse.js.map +1 -1
  870. package/dist/numerical/null-ic.js.map +1 -1
  871. package/dist/numerical/null-ray-integrator.js +4 -4
  872. package/dist/numerical/null-ray-integrator.js.map +1 -1
  873. package/dist/numerical/painleve-gullstrand-metric.js.map +1 -1
  874. package/dist/numerical/pderiv.d.ts.map +1 -1
  875. package/dist/numerical/pderiv.js +9 -2
  876. package/dist/numerical/pderiv.js.map +1 -1
  877. package/dist/numerical/perihelion-finder.js.map +1 -1
  878. package/dist/numerical/quadrature.d.ts +5 -2
  879. package/dist/numerical/quadrature.d.ts.map +1 -1
  880. package/dist/numerical/quadrature.js +20 -3
  881. package/dist/numerical/quadrature.js.map +1 -1
  882. package/dist/numerical/spacetime-metrics.d.ts +17 -19
  883. package/dist/numerical/spacetime-metrics.d.ts.map +1 -1
  884. package/dist/numerical/spacetime-metrics.js +158 -250
  885. package/dist/numerical/spacetime-metrics.js.map +1 -1
  886. package/dist/numerical/strides.js.map +1 -1
  887. package/dist/numerical/tensor-engine.d.ts +9 -5
  888. package/dist/numerical/tensor-engine.d.ts.map +1 -1
  889. package/dist/numerical/tensor-engine.js.map +1 -1
  890. package/dist/numerical/types.js.map +1 -1
  891. package/dist/numerical/weyl-lowering.js.map +1 -1
  892. package/dist/relations/category.js.map +1 -1
  893. package/dist/relations/composition-table.d.ts +4 -4
  894. package/dist/relations/composition-table.js +4 -4
  895. package/dist/relations/composition-table.js.map +1 -1
  896. package/dist/relations/conventions.js.map +1 -1
  897. package/dist/relations/domain-regimes.js.map +1 -1
  898. package/dist/relations/regime-registration.js.map +1 -1
  899. package/dist/relations/regime-vocabularies.js.map +1 -1
  900. package/dist/relations/regime.d.ts +18 -8
  901. package/dist/relations/regime.d.ts.map +1 -1
  902. package/dist/relations/regime.js +26 -14
  903. package/dist/relations/regime.js.map +1 -1
  904. package/dist/relations/types.d.ts +26 -6
  905. package/dist/relations/types.d.ts.map +1 -1
  906. package/dist/relations/types.js +15 -3
  907. package/dist/relations/types.js.map +1 -1
  908. package/package.json +10 -14
  909. package/dist/bridges/registry.d.ts +0 -60
  910. package/dist/bridges/registry.d.ts.map +0 -1
  911. package/dist/bridges/registry.js +0 -87
  912. package/dist/bridges/registry.js.map +0 -1
  913. package/dist/cli/poster-source.d.ts +0 -154
  914. package/dist/cli/poster-source.d.ts.map +0 -1
  915. package/dist/cli/poster-source.js +0 -184
  916. package/dist/cli/poster-source.js.map +0 -1
@@ -1,1566 +1,3075 @@
1
1
  /**
2
- * Generated from `formal/physjs/manifest.json`. Do not edit by hand.
2
+ * Generated from `formal/physjs/manifest.json` and `formal/physjs/theorem-files.json`.
3
+ * Do not edit by hand.
3
4
  * `bun run physjs:table` rewrites this file. A stale copy fails the docs gate,
4
5
  * and a hand-edited theorem fails `atlas:formal-gate`.
5
6
  */
6
7
  /** PhysJS commit recorded by the vendored manifest. */
7
- export const PHYSJS_COMMIT = "10e48f140c0e9fad3c50e5e5538124c52b3e732c";
8
+ export const PHYSJS_COMMIT = "a239a7085722f71f8d84b57407ccb1acdeda7b5b";
8
9
  /** Lean toolchain recorded by the vendored manifest. */
9
10
  export const PHYSJS_TOOLCHAIN = "leanprover/lean4:v4.34.1";
10
11
  /** Mathlib version recorded by the vendored manifest. */
11
12
  export const PHYSJS_MATHLIB = "v4.34.1";
12
13
  /** PhysLib commit recorded by the vendored manifest. */
13
14
  export const PHYSJS_PHYS_LIB = "af484f78ee0701290595f8bf892b157b10d64940";
14
- /** Compiled entry table copied from the vendored manifest entries. */
15
+ /**
16
+ * Compiled entry table copied from the vendored manifest entries. Each
17
+ * statement, nested ones included, carries its manifest kind and the Lean file
18
+ * that declares it; each nested statement is named by its manifest field.
19
+ */
15
20
  export const PHYSJS_ENTRIES = [
16
21
  {
17
22
  key: "ab-kg-schrodinger",
18
23
  bridgeId: "ab-kg-schrodinger",
24
+ kind: "bridge",
19
25
  theorem: "PhysJS.KgSchrodinger.covers_bound_delta",
26
+ file: "KgSchrodinger.lean",
20
27
  covers: "bound.delta exactly, at the dispersion relation",
21
28
  coverage: "covers its statement only",
22
29
  leanProof: "complete",
23
30
  axioms: ["propext", "Classical.choice", "Quot.sound"],
24
- planeWave: {
25
- theorem: "PhysJS.KgSchrodinger.planeWave_iff_dispersion",
26
- covers: "a plane wave solves the PDE iff ω(k) obeys the dispersion relation",
27
- coverage: "covers its statement only",
28
- leanProof: "complete",
29
- axioms: ["propext", "Classical.choice", "Quot.sound"],
30
- },
31
+ nested: [
32
+ {
33
+ name: "planeWave",
34
+ kind: "derivation-step",
35
+ theorem: "PhysJS.KgSchrodinger.planeWave_iff_dispersion",
36
+ file: "KgSchrodinger.lean",
37
+ covers: "a plane wave solves the PDE iff ω(k) obeys the dispersion relation",
38
+ coverage: "covers its statement only",
39
+ leanProof: "complete",
40
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
41
+ },
42
+ ],
31
43
  },
32
44
  {
33
45
  key: "ab-klein-gordon-wave",
34
46
  bridgeId: "ab-klein-gordon-wave",
47
+ kind: "bridge",
35
48
  theorem: "PhysJS.KleinGordonWave.covers_bound_delta",
49
+ file: "KleinGordonWave.lean",
36
50
  covers: "bound.delta exactly, at the dispersion relation",
37
51
  coverage: "covers its statement only",
38
52
  leanProof: "complete",
39
53
  axioms: ["propext", "Classical.choice", "Quot.sound"],
40
- planeWave: {
41
- theorem: "PhysJS.KleinGordonWave.planeWave_iff_dispersion",
42
- covers: "a plane wave solves the PDE iff ω(k) obeys the dispersion relation",
43
- coverage: "covers its statement only",
44
- leanProof: "complete",
45
- axioms: ["propext", "Classical.choice", "Quot.sound"],
46
- },
54
+ nested: [
55
+ {
56
+ name: "planeWave",
57
+ kind: "derivation-step",
58
+ theorem: "PhysJS.KleinGordonWave.planeWave_iff_dispersion",
59
+ file: "KleinGordonWave.lean",
60
+ covers: "a plane wave solves the PDE iff ω(k) obeys the dispersion relation",
61
+ coverage: "covers its statement only",
62
+ leanProof: "complete",
63
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
64
+ },
65
+ ],
47
66
  },
48
67
  {
49
68
  key: "ab-stiff-string",
50
69
  bridgeId: "ab-stiff-string",
70
+ kind: "bridge",
51
71
  theorem: "PhysJS.StiffString.covers_bound_delta",
72
+ file: "StiffString.lean",
52
73
  covers: "bound.delta exactly, at the dispersion relation",
53
74
  coverage: "covers its statement only",
54
75
  leanProof: "complete",
55
76
  axioms: ["propext", "Classical.choice", "Quot.sound"],
56
- planeWave: {
57
- theorem: "PhysJS.StiffString.planeWave_iff_dispersion",
58
- covers: "a plane wave solves the PDE iff ω(k) obeys the dispersion relation",
59
- coverage: "covers its statement only",
60
- leanProof: "complete",
61
- axioms: ["propext", "Classical.choice", "Quot.sound"],
62
- },
77
+ nested: [
78
+ {
79
+ name: "planeWave",
80
+ kind: "derivation-step",
81
+ theorem: "PhysJS.StiffString.planeWave_iff_dispersion",
82
+ file: "StiffString.lean",
83
+ covers: "a plane wave solves the PDE iff ω(k) obeys the dispersion relation",
84
+ coverage: "covers its statement only",
85
+ leanProof: "complete",
86
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
87
+ },
88
+ ],
63
89
  },
64
90
  {
65
91
  key: "ab-telegraph-diffusion",
66
92
  bridgeId: "ab-telegraph-diffusion",
93
+ kind: "bridge",
67
94
  theorem: "PhysJS.TelegraphDiffusion.covers_bound_delta",
95
+ file: "TelegraphDiffusion.lean",
68
96
  covers: "bound.delta exactly, at the dispersion relation",
69
97
  coverage: "covers its statement only",
70
98
  leanProof: "complete",
71
99
  axioms: ["propext", "Classical.choice", "Quot.sound"],
72
- planeWave: {
73
- theorem: "PhysJS.TelegraphDiffusion.planeWave_iff_dispersion",
74
- covers: "a plane wave solves the PDE iff ω(k) obeys the dispersion relation",
75
- coverage: "covers its statement only",
76
- leanProof: "complete",
77
- axioms: ["propext", "Classical.choice", "Quot.sound"],
78
- },
100
+ nested: [
101
+ {
102
+ name: "planeWave",
103
+ kind: "derivation-step",
104
+ theorem: "PhysJS.TelegraphDiffusion.planeWave_iff_dispersion",
105
+ file: "TelegraphDiffusion.lean",
106
+ covers: "a plane wave solves the PDE iff ω(k) obeys the dispersion relation",
107
+ coverage: "covers its statement only",
108
+ leanProof: "complete",
109
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
110
+ },
111
+ ],
79
112
  },
80
113
  {
81
114
  key: "ab-telegraph-wave",
82
115
  bridgeId: "ab-telegraph-wave",
116
+ kind: "bridge",
83
117
  theorem: "PhysJS.TelegraphWave.covers_bound_delta",
118
+ file: "TelegraphWave.lean",
84
119
  covers: "bound.delta exactly, at the dispersion relation",
85
120
  coverage: "covers its statement only",
86
121
  leanProof: "complete",
87
122
  axioms: ["propext", "Classical.choice", "Quot.sound"],
88
- planeWave: {
89
- theorem: "PhysJS.TelegraphWave.planeWave_iff_dispersion",
90
- covers: "a plane wave solves the PDE iff ω(k) obeys the dispersion relation",
91
- coverage: "covers its statement only",
92
- leanProof: "complete",
93
- axioms: ["propext", "Classical.choice", "Quot.sound"],
94
- },
123
+ nested: [
124
+ {
125
+ name: "planeWave",
126
+ kind: "derivation-step",
127
+ theorem: "PhysJS.TelegraphWave.planeWave_iff_dispersion",
128
+ file: "TelegraphWave.lean",
129
+ covers: "a plane wave solves the PDE iff ω(k) obeys the dispersion relation",
130
+ coverage: "covers its statement only",
131
+ leanProof: "complete",
132
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
133
+ },
134
+ ],
95
135
  },
96
136
  {
97
137
  key: "ab-pendulum-linear",
98
138
  bridgeId: "ab-pendulum-linear",
139
+ kind: "bridge",
99
140
  theorem: "PhysJS.Pendulum.linearizedEquationOfMotion_iff",
141
+ file: "Pendulum.lean",
100
142
  covers: "the transformation, not bound.delta",
101
143
  coverage: "covers its statement only",
102
144
  leanProof: "complete",
103
145
  axioms: ["propext", "Classical.choice", "Quot.sound"],
104
146
  imports: "ClassicalMechanics.SimplePendulum.linearizedEquationOfMotion_iff",
147
+ nested: [],
105
148
  },
106
149
  {
107
150
  key: "ab-kg-oscillator",
108
151
  bridgeId: "ab-kg-oscillator",
152
+ kind: "bridge",
109
153
  theorem: "PhysJS.KgOscillator.uniform_solves_equationOfMotion",
154
+ file: "KgOscillator.lean",
110
155
  covers: "the restriction, in Physlib's own terms",
111
156
  coverage: "covers its statement only",
112
157
  leanProof: "complete",
113
158
  axioms: ["propext", "Classical.choice", "Quot.sound"],
159
+ nested: [],
114
160
  },
115
161
  {
116
162
  key: "ab-spring-lc",
117
163
  bridgeId: "ab-spring-lc",
164
+ kind: "bridge",
118
165
  theorem: "PhysJS.SpringLc.time_rescale_equationOfMotion",
166
+ file: "OscillatorDictionary.lean",
119
167
  covers: "the oscillator dictionary",
120
168
  coverage: "covers its statement only",
121
169
  leanProof: "complete",
122
170
  axioms: ["propext", "Classical.choice", "Quot.sound"],
171
+ nested: [],
123
172
  },
124
173
  {
125
174
  key: "ab-damped-rlc",
126
175
  bridgeId: "ab-damped-rlc",
176
+ kind: "bridge",
127
177
  theorem: "PhysJS.DampedRlc.time_rescale_equationOfMotion",
178
+ file: "OscillatorDictionary.lean",
128
179
  covers: "the oscillator dictionary",
129
180
  coverage: "covers its statement only",
130
181
  leanProof: "complete",
131
182
  axioms: ["propext", "Classical.choice", "Quot.sound"],
183
+ nested: [],
132
184
  },
133
185
  {
134
186
  key: "ab-wave-dalembert",
135
187
  bridgeId: "ab-wave-dalembert",
188
+ kind: "bridge",
136
189
  theorem: "PhysJS.WaveDalembert.solution_eq_profiles",
190
+ file: "WaveDalembert.lean",
137
191
  covers: "the missing direction of d'Alembert's formula",
138
192
  coverage: "covers its statement only",
139
193
  leanProof: "complete",
140
194
  axioms: ["propext", "Classical.choice", "Quot.sound"],
195
+ nested: [],
141
196
  },
142
197
  {
143
198
  key: "be-64",
144
199
  bridgeId: "be-64",
200
+ kind: "derivation-step",
145
201
  theorem: "PhysJS.Eddington.balance_iff",
146
- covers: "derivation-step: the r² cancellation in the Eddington force balance, not a hard cap",
202
+ file: "Eddington.lean",
203
+ covers: "the r² cancellation in the Eddington force balance, not a hard cap",
147
204
  coverage: "covers its statement only",
148
205
  leanProof: "complete",
149
206
  axioms: ["propext", "Classical.choice", "Quot.sound"],
207
+ nested: [],
150
208
  },
151
209
  {
152
210
  key: "be-53",
153
211
  bridgeId: "be-53",
212
+ kind: "derivation-step",
154
213
  theorem: "PhysJS.YangMills.b0_pos_iff_nf_le",
155
- covers: "derivation-step: b₀ > 0 iff N_f ≤ 16 for SU(3), not a running procedure past one loop",
214
+ file: "YangMills.lean",
215
+ covers: "b₀ > 0 iff N_f ≤ 16 for SU(3), not a running procedure past one loop",
156
216
  coverage: "covers its statement only",
157
217
  leanProof: "complete",
158
218
  axioms: ["propext", "Classical.choice", "Quot.sound"],
159
- oneLoop: {
160
- theorem: "PhysJS.YangMills.alphaRun_hasDerivAt",
161
- covers: "derivation-step: α(t) = α₀ / (1 + b₀ α₀ t / (2π)) solves the one-loop running equation where the denominator is positive",
162
- coverage: "covers its statement only",
163
- leanProof: "complete",
164
- axioms: ["propext", "Classical.choice", "Quot.sound"],
165
- },
219
+ nested: [
220
+ {
221
+ name: "oneLoop",
222
+ kind: "derivation-step",
223
+ theorem: "PhysJS.YangMills.alphaRun_hasDerivAt",
224
+ file: "YangMills.lean",
225
+ covers: "α(t) = α₀ / (1 + b₀ α₀ t / (2π)) solves the one-loop running equation where the denominator is positive",
226
+ coverage: "covers its statement only",
227
+ leanProof: "complete",
228
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
229
+ },
230
+ ],
166
231
  },
167
232
  {
168
233
  key: "be-58",
169
234
  bridgeId: "be-58",
235
+ kind: "limit",
170
236
  theorem: "PhysJS.JohnsonNyquist.tendsto_classical",
171
- covers: "limit: the classical Johnson–Nyquist spectrum is the ω → 0⁺ limit of the quantum parent, not the fluctuation–dissipation theorem",
237
+ file: "JohnsonNyquist.lean",
238
+ covers: "the classical Johnson–Nyquist spectrum is the ω → 0⁺ limit of the quantum parent, not the fluctuation–dissipation theorem",
172
239
  coverage: "covers its statement only",
173
240
  leanProof: "complete",
174
241
  axioms: ["propext", "Classical.choice", "Quot.sound"],
242
+ nested: [],
175
243
  },
176
244
  {
177
245
  key: "be-38",
178
246
  bridgeId: "be-38",
247
+ kind: "limit",
179
248
  theorem: "PhysJS.Mond.tendsto_nu_limits",
180
- covers: "limit: ν → 1 as z → ∞, ν √z → 1 as z → 0⁺, and F_N ν(z) / √(m F_N a₀) → 1 as F_N → 0⁺; not ν → √(2/z), and not the SPARC confrontation",
249
+ file: "Mond.lean",
250
+ covers: "ν → 1 as z → ∞, ν √z → 1 as z → 0⁺, and F_N ν(z) / √(m F_N a₀) → 1 as F_N → 0⁺; not ν → √(2/z), and not the SPARC confrontation",
181
251
  coverage: "covers its statement only",
182
252
  leanProof: "complete",
183
253
  axioms: ["propext", "Classical.choice", "Quot.sound"],
184
- inversion: {
185
- theorem: "PhysJS.Mond.mu_inversion",
186
- covers: "derivation-step: for z > 0, y = z ν(z) satisfies y² / √(1 + y²) = z, which inverts μ(x) = x / √(1 + x²)",
187
- coverage: "covers its statement only",
188
- leanProof: "complete",
189
- axioms: ["propext", "Classical.choice", "Quot.sound"],
190
- },
254
+ nested: [
255
+ {
256
+ name: "inversion",
257
+ kind: "derivation-step",
258
+ theorem: "PhysJS.Mond.mu_inversion",
259
+ file: "Mond.lean",
260
+ covers: "for z > 0, y = z ν(z) satisfies y² / √(1 + y²) = z, which inverts μ(x) = x / √(1 + x²)",
261
+ coverage: "covers its statement only",
262
+ leanProof: "complete",
263
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
264
+ },
265
+ ],
191
266
  },
192
267
  {
193
268
  key: "be-13",
194
269
  bridgeId: "be-13",
270
+ kind: "reduction",
195
271
  theorem: "PhysJS.Einstein.trace_eq",
196
- covers: "reduction: contracting G_μν + Λ g_μν = κ T_μν in four dimensions gives R = 4Λ − κ T, not Jacobson's thermodynamic derivation",
197
- coverage: "covers its statement only",
198
- leanProof: "complete",
199
- axioms: ["propext", "Classical.choice", "Quot.sound"],
200
- vacuum: {
201
- theorem: "PhysJS.Einstein.vacuum_density",
202
- covers: "reduction: with κ = 8πG/c⁴, T_μν = −ρ c² g_μν and Λ g = −κ T rearrange to ρ = c² Λ / (8π G). The opposite sign does not. This is the BE-20 density; BE-20 has no reference of its own",
203
- coverage: "covers its statement only",
204
- leanProof: "complete",
205
- axioms: ["propext", "Classical.choice", "Quot.sound"],
206
- },
207
- corollary: {
208
- theorem: "PhysJS.Einstein.friedmann_corollary",
209
- covers: "derivation-step: the vacuum density gives (8πG/3) ρ = Λ c² / 3, the cosmological term of FirstOrderFriedmann. A fluid of this density added to matter, with the explicit Λ set to zero, is that equation at k = 0. The Einstein-static density Λ c²/(4π G) is twice that term. Dropping c² fails when c² ≠ 1. The density is not reproved. BE-20 has no reference of its own",
210
- coverage: "covers its statement only",
211
- leanProof: "complete",
212
- axioms: ["propext", "Classical.choice", "Quot.sound"],
213
- },
272
+ file: "Einstein.lean",
273
+ covers: "contracting G_μν + Λ g_μν = κ T_μν in four dimensions gives R = 4Λ − κ T, not Jacobson's thermodynamic derivation",
274
+ coverage: "covers its statement only",
275
+ leanProof: "complete",
276
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
277
+ nested: [
278
+ {
279
+ name: "vacuum",
280
+ kind: "reduction",
281
+ theorem: "PhysJS.Einstein.vacuum_density",
282
+ file: "Einstein.lean",
283
+ covers: "with κ = 8πG/c⁴, T_μν = −ρ c² g_μν and Λ g = −κ T rearrange to ρ = c² Λ / (8π G). The opposite sign does not. This is the BE-20 density; BE-20 has no reference of its own",
284
+ coverage: "covers its statement only",
285
+ leanProof: "complete",
286
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
287
+ },
288
+ {
289
+ name: "corollary",
290
+ kind: "derivation-step",
291
+ theorem: "PhysJS.Einstein.friedmann_corollary",
292
+ file: "VacuumFriedmann.lean",
293
+ covers: "the vacuum density gives (8πG/3) ρ = Λ c² / 3, the cosmological term of FirstOrderFriedmann. A fluid of this density added to matter, with the explicit Λ set to zero, is that equation at k = 0. The Einstein-static density Λ c²/(4π G) is twice that term. Dropping c² fails when c² ≠ 1. The density is not reproved. BE-20 has no reference of its own",
294
+ coverage: "covers its statement only",
295
+ leanProof: "complete",
296
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
297
+ },
298
+ ],
214
299
  },
215
300
  {
216
301
  key: "be-34",
217
302
  bridgeId: "be-34",
303
+ kind: "derivation-step",
218
304
  theorem: "PhysJS.KibbleZurek.exponent",
219
- covers: "derivation-step: the freeze-out power ε̂ = (τ₀/τ_Q)^(1/(1+zν)) and the defect density without the Boltzmann factor; omitting the 1 in the exponent fails. Not the reheating factor, and not a repair of the missing 1/a^d prefactor",
305
+ file: "KibbleZurek.lean",
306
+ covers: "the freeze-out power ε̂ = (τ₀/τ_Q)^(1/(1+zν)) and the defect density without the Boltzmann factor; omitting the 1 in the exponent fails. Not the reheating factor, and not a repair of the missing 1/a^d prefactor",
220
307
  coverage: "covers its statement only",
221
308
  leanProof: "complete",
222
309
  axioms: ["propext", "Classical.choice", "Quot.sound"],
310
+ nested: [],
223
311
  },
224
312
  {
225
313
  key: "be-42",
226
314
  bridgeId: "be-42",
315
+ kind: "cross-check",
227
316
  theorem: "PhysJS.HawkingUnruh.dictionary",
228
- covers: "cross-check: T_H(2GM/c²) = T_H(M) and T_U(c⁴/(4GM)) = T_H(M), naming BE-57 and be-42-via-rs. T_U(c⁴/(2GM)) is not T_H(M). Not the Hawking effect",
317
+ file: "HawkingUnruh.lean",
318
+ covers: "T_H(2GM/c²) = T_H(M) and T_U(c⁴/(4GM)) = T_H(M), naming BE-57 and be-42-via-rs. T_U(c⁴/(2GM)) is not T_H(M). Not the Hawking effect",
229
319
  coverage: "covers its statement only",
230
320
  leanProof: "complete",
231
321
  axioms: ["propext", "Classical.choice", "Quot.sound"],
322
+ nested: [],
232
323
  },
233
324
  {
234
325
  key: "be-24",
235
326
  bridgeId: "be-24",
327
+ kind: "cross-check",
236
328
  theorem: "PhysJS.Fret.dictionary",
237
- covers: "cross-check: η = R₀⁶/(R₀⁶+R⁶) = 1/(1+(R/R₀)⁶) = k_FRET/(k_FRET+1/τ_D), and η decreases on (0, ∞). At R = 2 R₀ the exponent 4 is not the exponent 6. Not the dipole–dipole law",
329
+ file: "Fret.lean",
330
+ covers: "η = R₀⁶/(R₀⁶+R⁶) = 1/(1+(R/R₀)⁶) = k_FRET/(k_FRET+1/τ_D), and η decreases on (0, ∞). At R = 2 R₀ the exponent 4 is not the exponent 6. Not the dipole–dipole law",
238
331
  coverage: "covers its statement only",
239
332
  leanProof: "complete",
240
333
  axioms: ["propext", "Classical.choice", "Quot.sound"],
334
+ nested: [],
241
335
  },
242
336
  {
243
337
  key: "be-19",
244
338
  bridgeId: "be-19",
339
+ kind: "cross-check",
245
340
  theorem: "PhysJS.QuantumBounce.dictionary",
246
- covers: "cross-check: H²_LQC equals H²_RS at σ = −ρ_c/2, both tend to (8πG/3)ρ + Λ/3 at infinity, and H²_LQC = 0 at ρ = ρ_c and Λ = 0, naming BE-54. σ = +ρ_c/2 is not that polynomial. σ < 0 is not a physical Randall–Sundrum brane",
341
+ file: "QuantumBounce.lean",
342
+ covers: "H²_LQC equals H²_RS at σ = −ρ_c/2, both tend to (8πG/3)ρ + Λ/3 at infinity, and H²_LQC = 0 at ρ = ρ_c and Λ = 0, naming BE-54. σ = +ρ_c/2 is not that polynomial. σ < 0 is not a physical Randall–Sundrum brane",
247
343
  coverage: "covers its statement only",
248
344
  leanProof: "complete",
249
345
  axioms: ["propext", "Classical.choice", "Quot.sound"],
346
+ nested: [],
250
347
  },
251
348
  {
252
349
  key: "be-16",
253
350
  bridgeId: "be-16",
351
+ kind: "bridge",
254
352
  theorem: "PhysJS.Landauer.erasure_eq",
255
- covers: "derivation-step: for T > 0, the equal-level two-state ensemble has ⟨E⟩ − F = k_B T log 2. equal_levels remains the entropy k_B log 2. At T > 0, levels E and E+δ do not have that deficit. At T = 0 the Helmholtz closed form does not separate the levels. Not E ≥ T ΔS for an arbitrary protocol, and not the Bérut confrontation",
353
+ file: "Landauer.lean",
354
+ covers: "for T > 0, the equal-level two-state ensemble has ⟨E⟩ − F = k_B T log 2. equal_levels remains the entropy k_B log 2. At T > 0, levels E and E+δ do not have that deficit. At T = 0 the Helmholtz closed form does not separate the levels. Not E ≥ T ΔS for an arbitrary protocol, and not the Bérut confrontation",
256
355
  coverage: "covers its statement only",
257
356
  leanProof: "complete",
258
357
  axioms: ["propext", "Classical.choice", "Quot.sound"],
358
+ nested: [],
259
359
  },
260
360
  {
261
361
  key: "be-29",
262
362
  bridgeId: "be-29",
363
+ kind: "property",
263
364
  theorem: "PhysJS.Jarzynski.jensen_work",
264
- covers: "property: for a finite probability and β > 0, ∑ p_i W_i ≥ −(1/β) log(∑ p_i exp(−β W_i)). The reversed inequality fails on two unequal work values. Not Jarzynski's theorem, and not the Gaussian identity",
365
+ file: "Jarzynski.lean",
366
+ covers: "for a finite probability and β > 0, ∑ p_i W_i ≥ −(1/β) log(∑ p_i exp(−β W_i)). The reversed inequality fails on two unequal work values. Not Jarzynski's theorem, and not the Gaussian identity",
265
367
  coverage: "covers its statement only",
266
368
  leanProof: "complete",
267
369
  axioms: ["propext", "Classical.choice", "Quot.sound"],
370
+ nested: [],
268
371
  },
269
372
  {
270
373
  key: "be-11",
271
374
  bridgeId: "be-11",
375
+ kind: "property",
272
376
  theorem: "PhysJS.Lindblad.preserve",
273
- covers: "property: one channel of the displayed GKSL generator has trace zero, and it is Hermitian when H and ρ are. L need not be Hermitian. Dropping the anticommutator makes the trace nonzero. Not Born–Markov coarse-graining",
377
+ file: "Lindblad.lean",
378
+ covers: "one channel of the displayed GKSL generator has trace zero, and it is Hermitian when H and ρ are. L need not be Hermitian. Dropping the anticommutator makes the trace nonzero. Not Born–Markov coarse-graining",
274
379
  coverage: "covers its statement only",
275
380
  leanProof: "complete",
276
381
  axioms: ["propext", "Classical.choice", "Quot.sound"],
382
+ nested: [],
277
383
  },
278
384
  {
279
385
  key: "be-65",
280
386
  bridgeId: "be-65",
387
+ kind: "derivation-step",
281
388
  theorem: "PhysJS.Jeans.mass_eq",
282
- covers: "derivation-step: the encoded Jeans mass (5 k T / (G μ m_u))^(3/2) (3 / (4 π ρ))^(1/2) follows from the virial convention with factor 5 and M = 4 π R³ ρ / 3. Replacing 5 by 3 fails. Not the virial theorem",
389
+ file: "Jeans.lean",
390
+ covers: "the encoded Jeans mass (5 k T / (G μ m_u))^(3/2) (3 / (4 π ρ))^(1/2) follows from the virial convention with factor 5 and M = 4 π R³ ρ / 3. Replacing 5 by 3 fails. Not the virial theorem",
283
391
  coverage: "covers its statement only",
284
392
  leanProof: "complete",
285
393
  axioms: ["propext", "Classical.choice", "Quot.sound"],
394
+ nested: [],
286
395
  },
287
396
  {
288
397
  key: "be-51",
289
398
  bridgeId: "be-51",
399
+ kind: "derivation-step",
290
400
  theorem: "PhysJS.Deflection.line_integral",
291
- covers: "derivation-step: (1+γ)/c² ∫_ℝ G M b / (b² + z²)^{3/2} dz = 2(1+γ) G M / (b c²), and at γ = 1 this is the encoded angle 4 G M / (b c²). γ = 0 is half. Not a geodesic",
401
+ file: "Deflection.lean",
402
+ covers: "(1+γ)/c² ∫_ℝ G M b / (b² + z²)^{3/2} dz = 2(1+γ) G M / (b c²), and at γ = 1 this is the encoded angle 4 G M / (b c²). γ = 0 is half. Not a geodesic",
292
403
  coverage: "covers its statement only",
293
404
  leanProof: "complete",
294
405
  axioms: ["propext", "Classical.choice", "Quot.sound"],
406
+ nested: [],
295
407
  },
296
408
  {
297
409
  key: "be-61",
298
410
  bridgeId: "be-61",
411
+ kind: "derivation-step",
299
412
  theorem: "PhysJS.Sommerfeld.integral_eq",
300
- covers: "derivation-step: ∫_ℝ x² e^x / (1+e^x)² dx = π²/3, the factor in the encoded Lorenz number. The integrand is even, so the half-line is half of π²/3. Claiming the half-line equals π²/3 fails. Not the transport law",
413
+ file: "Sommerfeld.lean",
414
+ covers: "∫_ℝ x² e^x / (1+e^x)² dx = π²/3, the factor in the encoded Lorenz number. The integrand is even, so the half-line is half of π²/3. Claiming the half-line equals π²/3 fails. Not the transport law",
301
415
  coverage: "covers its statement only",
302
416
  leanProof: "complete",
303
417
  axioms: ["propext", "Classical.choice", "Quot.sound"],
418
+ nested: [],
304
419
  },
305
420
  {
306
421
  key: "be-12",
307
422
  bridgeId: "be-12",
423
+ kind: "bridge",
308
424
  theorem: "PhysJS.ThermalDeBroglie.wavelength_eq",
309
- covers: "derivation-step: √(2π ℏ²/(m k_B T)) = h/√(2π m k_B T) for h = 2πℏ and ℏ > 0. The non-negative square root needs ℏ > 0. The Wave Q form ℏ/√(m k_B T), with ℏ in the numerator and no √(2π), fails, as does ℏ/√(2 m k_B T). Not Caldeira–Leggett dephasing",
425
+ file: "ThermalDeBroglie.lean",
426
+ covers: "√(2π ℏ²/(m k_B T)) = h/√(2π m k_B T) for h = 2πℏ and ℏ > 0. The non-negative square root needs ℏ > 0. The Wave Q form ℏ/√(m k_B T), with ℏ in the numerator and no √(2π), fails, as does ℏ/√(2 m k_B T). Not Caldeira–Leggett dephasing",
310
427
  coverage: "covers its statement only",
311
428
  leanProof: "complete",
312
429
  axioms: ["propext", "Classical.choice", "Quot.sound"],
430
+ nested: [],
313
431
  },
314
432
  {
315
433
  key: "be-59",
316
434
  bridgeId: "be-59",
435
+ kind: "bridge",
317
436
  theorem: "PhysJS.Josephson.frequency_eq",
318
- covers: "derivation-step: f = (2e/h) V, K_J = 2e/h, and f = K_J V. Clearing h recovers 2e. The factor 2 is the Cooper-pair charge, taken as a premise. Replacing 2e by e fails. Not the tunneling Hamiltonian",
437
+ file: "Josephson.lean",
438
+ covers: "f = (2e/h) V, K_J = 2e/h, and f = K_J V. Clearing h recovers 2e. The factor 2 is the Cooper-pair charge, taken as a premise. Replacing 2e by e fails. Not the tunneling Hamiltonian",
319
439
  coverage: "covers its statement only",
320
440
  leanProof: "complete",
321
441
  axioms: ["propext", "Classical.choice", "Quot.sound"],
442
+ nested: [],
322
443
  },
323
444
  {
324
445
  key: "be-55",
325
446
  bridgeId: "be-55",
447
+ kind: "bridge",
326
448
  theorem: "PhysJS.QuantumHall.reciprocal",
327
- covers: "derivation-step: for a nonzero integer C and e ≠ 0, σ_xy = C e²/h, R_H = h/(C e²), and R_K = h/e², so σ_xy R_H = 1 and R_H = R_K/C. The shifted index C+1 is a different conductance. Replacing e² by e fails the product when e ≠ 1. Not TKNN",
449
+ file: "QuantumHall.lean",
450
+ covers: "for a nonzero integer C and e ≠ 0, σ_xy = C e²/h, R_H = h/(C e²), and R_K = h/e², so σ_xy R_H = 1 and R_H = R_K/C. The shifted index C+1 is a different conductance. Replacing e² by e fails the product when e ≠ 1. Not TKNN",
328
451
  coverage: "covers its statement only",
329
452
  leanProof: "complete",
330
453
  axioms: ["propext", "Classical.choice", "Quot.sound"],
454
+ nested: [],
331
455
  },
332
456
  {
333
457
  key: "be-60",
334
458
  bridgeId: "be-60",
459
+ kind: "bridge",
335
460
  theorem: "PhysJS.Laughlin.filling_fraction",
336
- covers: "derivation-step: for integers p ≠ 0 and q ≠ 0, with ν = p/q, σ_xy = ν e²/h and R_xy = R_K/ν = (q/p) h/e². The charge and Planck's constant are not assumed nonzero. Oddness of q is the Laughlin selection rule and is not this identity. Not the Laughlin wavefunction, and not the anyon charge e/3",
461
+ file: "Laughlin.lean",
462
+ covers: "for integers p ≠ 0 and q ≠ 0, with ν = p/q, σ_xy = ν e²/h and R_xy = R_K/ν = (q/p) h/e². The charge and Planck's constant are not assumed nonzero. Oddness of q is the Laughlin selection rule and is not this identity. Not the Laughlin wavefunction, and not the anyon charge e/3",
337
463
  coverage: "covers its statement only",
338
464
  leanProof: "complete",
339
465
  axioms: ["propext", "Classical.choice", "Quot.sound"],
466
+ nested: [],
340
467
  },
341
468
  {
342
469
  key: "be-21",
343
470
  bridgeId: "be-21",
471
+ kind: "bridge",
344
472
  theorem: "PhysJS.Kss.saturating",
345
- covers: "derivation-step: η/s = ℏ/(4π k_B) is the equality 4π k_B (η/s) = ℏ for k_B ≠ 0. The Hawking factor 8π in place of 4π is 2ℏ, not ℏ, once ℏ ≠ 0. Not the inequality η/s ≥ ℏ/(4π k_B)",
473
+ file: "Kss.lean",
474
+ covers: "η/s = ℏ/(4π k_B) is the equality 4π k_B (η/s) = ℏ for k_B ≠ 0. The Hawking factor 8π in place of 4π is 2ℏ, not ℏ, once ℏ ≠ 0. Not the inequality η/s ≥ ℏ/(4π k_B)",
346
475
  coverage: "covers its statement only",
347
476
  leanProof: "complete",
348
477
  axioms: ["propext", "Classical.choice", "Quot.sound"],
478
+ nested: [],
349
479
  },
350
480
  {
351
481
  key: "be-14",
352
482
  bridgeId: "be-14",
483
+ kind: "derivation-step",
353
484
  theorem: "PhysJS.PlanckArea.area_law",
354
- covers: "derivation-step: k_B c³ A/(4 G ℏ) = k_B A/(4 ℓ_P²) for ℓ_P² = ℏ G/c³. The area is an input. ℓ_P² = ℏ G/c² fails when c ≠ 1. The factor 2 in place of 4 fails. The same lemma is be-43. Not the minimal-surface theorem",
485
+ file: "PlanckArea.lean",
486
+ covers: "k_B c³ A/(4 G ℏ) = k_B A/(4 ℓ_P²) for ℓ_P² = ℏ G/c³. The area is an input. ℓ_P² = ℏ G/c² fails when c ≠ 1. The factor 2 in place of 4 fails. The same lemma is be-43. Not the minimal-surface theorem",
355
487
  coverage: "covers its statement only",
356
488
  leanProof: "complete",
357
489
  axioms: ["propext", "Classical.choice", "Quot.sound"],
490
+ nested: [],
358
491
  },
359
492
  {
360
493
  key: "be-43",
361
494
  bridgeId: "be-43",
495
+ kind: "bridge",
362
496
  theorem: "PhysJS.PlanckArea.area_law",
363
- covers: "derivation-step: the be-14 lemma on a wormhole area. k_B A/(4 ℓ_P²) equals k_B c³ A/(4 G ℏ) for ℓ_P² = ℏ G/c³. ℓ_P² = ℏ G/c² fails when c ≠ 1, and the factor 2 fails. Not ER=EPR",
497
+ file: "PlanckArea.lean",
498
+ covers: "the be-14 lemma on a wormhole area. k_B A/(4 ℓ_P²) equals k_B c³ A/(4 G ℏ) for ℓ_P² = ℏ G/c³. ℓ_P² = ℏ G/c² fails when c ≠ 1, and the factor 2 fails. Not ER=EPR",
364
499
  coverage: "covers its statement only",
365
500
  leanProof: "complete",
366
501
  axioms: ["propext", "Classical.choice", "Quot.sound"],
502
+ nested: [],
367
503
  },
368
504
  {
369
505
  key: "be-37",
370
506
  bridgeId: "be-37",
507
+ kind: "bridge",
371
508
  theorem: "PhysJS.Shapiro.radial_integral",
372
- covers: "derivation-step: for 0 < R_near < R_far and c ≠ 0, ∫_{R_near}^{R_far} (2 G M / c³) (dr / r) = (2 G M / c³) ln(R_far / R_near). The factor 1 in place of 2 is half, once G ≠ 0 and M ≠ 0. log₁₀ of the radius ratio is not ln. Not the impact-parameter formula, and not the Cassini measurement",
509
+ file: "Shapiro.lean",
510
+ covers: "for 0 < R_near < R_far and c ≠ 0, ∫_{R_near}^{R_far} (2 G M / c³) (dr / r) = (2 G M / c³) ln(R_far / R_near). The factor 1 in place of 2 is half, once G ≠ 0 and M ≠ 0. log₁₀ of the radius ratio is not ln. Not the impact-parameter formula, and not the Cassini measurement",
373
511
  coverage: "covers its statement only",
374
512
  leanProof: "complete",
375
513
  axioms: ["propext", "Classical.choice", "Quot.sound"],
514
+ nested: [],
376
515
  },
377
516
  {
378
517
  key: "be-54",
379
518
  bridgeId: "be-54",
519
+ kind: "bridge",
380
520
  theorem: "PhysJS.RandallSundrum.brane_friedmann",
381
- covers: "derivation-step: for σ ≠ 0, H²_RS = (8πG/3) ρ (1 + ρ/(2σ)) + Λ/3, which equals the Friedmann term plus (8πG/3) ρ²/(2σ). Not a derivation from the five-dimensional Einstein equation",
521
+ file: "RandallSundrum.lean",
522
+ covers: "for σ ≠ 0, H²_RS = (8πG/3) ρ (1 + ρ/(2σ)) + Λ/3, which equals the Friedmann term plus (8πG/3) ρ²/(2σ). Not a derivation from the five-dimensional Einstein equation",
382
523
  coverage: "covers its statement only",
383
524
  leanProof: "complete",
384
525
  axioms: ["propext", "Classical.choice", "Quot.sound"],
385
- friedmann: {
386
- theorem: "PhysJS.RandallSundrum.flat_friedmann",
387
- covers: "derivation-step: H²_FRW with the module Λ equal to Physlib's Λ c² is FirstOrderFriedmann at k = 0. Identifying the two Λ symbols and dropping c² fails when c² ≠ 1 and Λ ≠ 0",
388
- coverage: "covers its statement only",
389
- leanProof: "complete",
390
- axioms: ["propext", "Classical.choice", "Quot.sound"],
391
- },
526
+ nested: [
527
+ {
528
+ name: "friedmann",
529
+ kind: "derivation-step",
530
+ theorem: "PhysJS.RandallSundrum.flat_friedmann",
531
+ file: "RandallSundrum.lean",
532
+ covers: "H²_FRW with the module Λ equal to Physlib's Λ c² is FirstOrderFriedmann at k = 0. Identifying the two Λ symbols and dropping c² fails when c² ≠ 1 and Λ ≠ 0",
533
+ coverage: "covers its statement only",
534
+ leanProof: "complete",
535
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
536
+ },
537
+ ],
392
538
  },
393
539
  {
394
540
  key: "be-17",
395
541
  bridgeId: "be-17",
542
+ kind: "derivation-step",
396
543
  theorem: "PhysJS.EinsteinCartan.inversion",
397
- covers: "derivation-step: if κ = 8πG/c⁴ ≠ 0 and every component satisfies T = κ S, then S·S = T·T / κ² = (c⁴/(8πG))² T·T. κ² in the numerator is the inversion backwards, and it fails when T·T ≠ 0 and κ⁴ ≠ 1. Not the Einstein–Cartan field equation, and not a Newtonian limit",
398
- coverage: "covers its statement only",
399
- leanProof: "complete",
400
- axioms: ["propext", "Classical.choice", "Quot.sound"],
401
- torsionMonomial: {
402
- theorem: "PhysJS.EinsteinCartan.torsion_monomial",
403
- covers: "derivation-step: [κ] and [S] are independent base dimensions and [T] = [κ][S]. If a positive component is dimensionally homogeneous in those dimensions, every positive pair is a unit change of (1, 1) and T = C κ S with C = f(1, 1). C is not fixed. Not the Einstein–Cartan field equation",
404
- coverage: "covers its statement only",
405
- leanProof: "complete",
406
- axioms: ["propext", "Classical.choice", "Quot.sound"],
407
- },
408
- coefficientNotFixed: {
409
- theorem: "PhysJS.EinsteinCartan.coefficient_not_fixed",
410
- covers: "derivation-step: if C ≠ 1 and κ S ≠ 0, then C κ S ≠ κ S. A factor other than 1 is not the catalog coefficient",
411
- coverage: "covers its statement only",
412
- leanProof: "complete",
413
- axioms: ["propext", "Classical.choice", "Quot.sound"],
414
- },
415
- unitCoefficient: {
416
- theorem: "PhysJS.EinsteinCartan.inversion_of_unit_coefficient",
417
- covers: "derivation-step: if C = 1 and every component satisfies T = C κ S, then inversion gives S·S = T·T / κ². C = 1 is a hypothesis. The Einstein trace stays a hypothesis of PhysJS.Einstein.trace_eq",
418
- coverage: "covers its statement only",
419
- leanProof: "complete",
420
- axioms: ["propext", "Classical.choice", "Quot.sound"],
421
- },
544
+ file: "EinsteinCartan.lean",
545
+ covers: "if κ = 8πG/c⁴ ≠ 0 and every component satisfies T = κ S, then S·S = T·T / κ² = (c⁴/(8πG))² T·T. κ² in the numerator is the inversion backwards, and it fails when T·T ≠ 0 and κ⁴ ≠ 1. Not the Einstein–Cartan field equation, and not a Newtonian limit",
546
+ coverage: "covers its statement only",
547
+ leanProof: "complete",
548
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
549
+ nested: [
550
+ {
551
+ name: "torsionMonomial",
552
+ kind: "derivation-step",
553
+ theorem: "PhysJS.EinsteinCartan.torsion_monomial",
554
+ file: "EinsteinCartan.lean",
555
+ covers: "[κ] and [S] are independent base dimensions and [T] = [κ][S]. If a positive component is dimensionally homogeneous in those dimensions, every positive pair is a unit change of (1, 1) and T = C κ S with C = f(1, 1). C is not fixed. Not the Einstein–Cartan field equation",
556
+ coverage: "covers its statement only",
557
+ leanProof: "complete",
558
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
559
+ },
560
+ {
561
+ name: "coefficientNotFixed",
562
+ kind: "derivation-step",
563
+ theorem: "PhysJS.EinsteinCartan.coefficient_not_fixed",
564
+ file: "EinsteinCartan.lean",
565
+ covers: "if C ≠ 1 and κ S ≠ 0, then C κ S ≠ κ S. A factor other than 1 is not the catalog coefficient",
566
+ coverage: "covers its statement only",
567
+ leanProof: "complete",
568
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
569
+ },
570
+ {
571
+ name: "unitCoefficient",
572
+ kind: "derivation-step",
573
+ theorem: "PhysJS.EinsteinCartan.inversion_of_unit_coefficient",
574
+ file: "EinsteinCartan.lean",
575
+ covers: "if C = 1 and every component satisfies T = C κ S, then inversion gives S·S = T·T / κ². C = 1 is a hypothesis. The Einstein trace stays a hypothesis of PhysJS.Einstein.trace_eq",
576
+ coverage: "covers its statement only",
577
+ leanProof: "complete",
578
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
579
+ },
580
+ ],
422
581
  },
423
582
  {
424
583
  key: "be-27",
425
584
  bridgeId: "be-27",
585
+ kind: "bridge",
426
586
  theorem: "PhysJS.EffectiveTemperature.sum_eq",
427
- covers: "derivation-step: for T ≠ 0 and k_B ≠ 0, T (1 + Σ_active/(k_B T)) = T + Σ_active/k_B, and this equals T iff Σ_active = 0. The product T · Σ_active/(k_B T), with the 1 omitted, is not that sum. Not the frequency-dependent Cugliandolo–Kurchan T_eff(ω)",
587
+ file: "EffectiveTemperature.lean",
588
+ covers: "for T ≠ 0 and k_B ≠ 0, T (1 + Σ_active/(k_B T)) = T + Σ_active/k_B, and this equals T iff Σ_active = 0. The product T · Σ_active/(k_B T), with the 1 omitted, is not that sum. Not the frequency-dependent Cugliandolo–Kurchan T_eff(ω)",
428
589
  coverage: "covers its statement only",
429
590
  leanProof: "complete",
430
591
  axioms: ["propext", "Classical.choice", "Quot.sound"],
592
+ nested: [],
431
593
  },
432
594
  {
433
595
  key: "be-22",
434
596
  bridgeId: "be-22",
597
+ kind: "derivation-step",
435
598
  theorem: "PhysJS.ToricCode.toric",
436
- covers: "derivation-step: four anyons of quantum dimension 1 have D = √4 = 2 and γ = ln 2 in nats. The encoded decomposition is S = α L − γ, with the O(L⁻¹) term dropped. log₂ 2 = 1 is the bit convention, not ln 2. D = √2 is one anyon pair, not the toric code. Not the Kitaev–Preskill theorem, and not a quantum-gravity boundary",
599
+ file: "ToricCode.lean",
600
+ covers: "four anyons of quantum dimension 1 have D = √4 = 2 and γ = ln 2 in nats. The encoded decomposition is S = α L − γ, with the O(L⁻¹) term dropped. log₂ 2 = 1 is the bit convention, not ln 2. D = √2 is one anyon pair, not the toric code. Not the Kitaev–Preskill theorem, and not a quantum-gravity boundary",
437
601
  coverage: "covers its statement only",
438
602
  leanProof: "complete",
439
603
  axioms: ["propext", "Classical.choice", "Quot.sound"],
604
+ nested: [],
440
605
  },
441
606
  {
442
607
  key: "be-15",
443
608
  bridgeId: "be-15",
609
+ kind: "derivation-step",
444
610
  theorem: "PhysJS.Coarsening.exponent_iff",
445
- covers: "derivation-step: for Γ = L₀²/t₀ > 0, t > 0, t ≠ t₀, and z > 0, L(t) = L₀ (t/t₀)^{1/z} obeys L(t)² = Γ t iff z = 2. At t = t₀ the ratio holds for every z. Model B's z = 3 gives L³ ∝ t and fails L² = Γ t. Not the Model A Langevin equation. The Langevin kinetic coefficient is a different Γ",
611
+ file: "Coarsening.lean",
612
+ covers: "for Γ = L₀²/t₀ > 0, t > 0, t ≠ t₀, and z > 0, L(t) = L₀ (t/t₀)^{1/z} obeys L(t)² = Γ t iff z = 2. At t = t₀ the ratio holds for every z. Model B's z = 3 gives L³ ∝ t and fails L² = Γ t. Not the Model A Langevin equation. The Langevin kinetic coefficient is a different Γ",
446
613
  coverage: "covers its statement only",
447
614
  leanProof: "complete",
448
615
  axioms: ["propext", "Classical.choice", "Quot.sound"],
449
- lengthMonomial: {
450
- theorem: "PhysJS.Coarsening.length_monomial_at",
451
- covers: "derivation-step: if L is a dimensionally homogeneous function of Γ and t alone and [Γ] = L^z T⁻¹ for a positive rational z, then L = C (Γ t)^{1/z} with C = f(1, 1). C is not fixed. Every positive rational z is allowed, so z = 2 is not derived. Not the Model A Langevin equation",
452
- coverage: "covers its statement only",
453
- leanProof: "complete",
454
- axioms: ["propext", "Classical.choice", "Quot.sound"],
455
- },
616
+ nested: [
617
+ {
618
+ name: "lengthMonomial",
619
+ kind: "derivation-step",
620
+ theorem: "PhysJS.Coarsening.length_monomial_at",
621
+ file: "Coarsening.lean",
622
+ covers: "if L is a dimensionally homogeneous function of Γ and t alone and [Γ] = L^z T⁻¹ for a positive rational z, then L = C (Γ t)^{1/z} with C = f(1, 1). C is not fixed. Every positive rational z is allowed, so z = 2 is not derived. Not the Model A Langevin equation",
623
+ coverage: "covers its statement only",
624
+ leanProof: "complete",
625
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
626
+ },
627
+ ],
456
628
  },
457
629
  {
458
630
  key: "be-33",
459
631
  bridgeId: "be-33",
632
+ kind: "bridge",
460
633
  theorem: "PhysJS.QuantumCritical.thermal_scaling",
461
- covers: "derivation-step: ξ(T) = ξ₀ (T/T₀)^{−1/z}, and at z = 1 this is ξ(T) = ξ₀ (T/T₀)^{−1} = ξ₀ T₀/T for T > 0 and T₀ > 0. Not Hertz–Millis theory, and not a universality class",
462
- coverage: "covers its statement only",
463
- leanProof: "complete",
464
- axioms: ["propext", "Classical.choice", "Quot.sound"],
465
- scalingShape: {
466
- theorem: "PhysJS.QuantumCritical.scaling_shape",
467
- covers: "derivation-step: if ξ is a dimensionally homogeneous function of a length ξ₀ and two temperatures, then ξ = ξ₀ φ(T/T₀) with φ(u) = f(1, u, 1). φ is not fixed. Not Hertz–Millis theory",
468
- coverage: "covers its statement only",
469
- leanProof: "complete",
470
- axioms: ["propext", "Classical.choice", "Quot.sound"],
471
- },
472
- everyPower: {
473
- theorem: "PhysJS.QuantumCritical.every_power_homogeneous",
474
- covers: "derivation-step: for every real p and positive scale factors, (λ_s ξ₀) ((λ_e T)/(λ_e T₀))^p = λ_s (ξ₀ (T/T₀)^p). The exponent p is not chosen. Not Hertz–Millis theory",
475
- coverage: "covers its statement only",
476
- leanProof: "complete",
477
- axioms: ["propext", "Classical.choice", "Quot.sound"],
478
- },
634
+ file: "QuantumCritical.lean",
635
+ covers: "ξ(T) = ξ₀ (T/T₀)^{−1/z}, and at z = 1 this is ξ(T) = ξ₀ (T/T₀)^{−1} = ξ₀ T₀/T for T > 0 and T₀ > 0. Not Hertz–Millis theory, and not a universality class",
636
+ coverage: "covers its statement only",
637
+ leanProof: "complete",
638
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
639
+ nested: [
640
+ {
641
+ name: "scalingShape",
642
+ kind: "derivation-step",
643
+ theorem: "PhysJS.QuantumCritical.scaling_shape",
644
+ file: "QuantumCritical.lean",
645
+ covers: "if ξ is a dimensionally homogeneous function of a length ξ₀ and two temperatures, then ξ = ξ₀ φ(T/T₀) with φ(u) = f(1, u, 1). φ is not fixed. Not Hertz–Millis theory",
646
+ coverage: "covers its statement only",
647
+ leanProof: "complete",
648
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
649
+ },
650
+ {
651
+ name: "everyPower",
652
+ kind: "derivation-step",
653
+ theorem: "PhysJS.QuantumCritical.every_power_homogeneous",
654
+ file: "QuantumCritical.lean",
655
+ covers: "for every real p and positive scale factors, (λ_s ξ₀) ((λ_e T)/(λ_e T₀))^p = λ_s (ξ₀ (T/T₀)^p). The exponent p is not chosen. Not Hertz–Millis theory",
656
+ coverage: "covers its statement only",
657
+ leanProof: "complete",
658
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
659
+ },
660
+ ],
479
661
  },
480
662
  {
481
663
  key: "be-50",
482
664
  bridgeId: "be-50",
665
+ kind: "bridge",
483
666
  theorem: "PhysJS.TimeSymmetric.wheeler_feynman",
484
- covers: "derivation-step: A_μ(x) = (A_μ^ret(x) + A_μ^adv(x))/2, and twice that component is the sum. The id is contested. This lemma does not decide the contest. Not the absorber boundary condition as a theory of radiation reaction",
667
+ file: "TimeSymmetric.lean",
668
+ covers: "A_μ(x) = (A_μ^ret(x) + A_μ^adv(x))/2, and twice that component is the sum. The id is contested. This lemma does not decide the contest. Not the absorber boundary condition as a theory of radiation reaction",
485
669
  coverage: "covers its statement only",
486
670
  leanProof: "complete",
487
671
  axioms: ["propext", "Classical.choice", "Quot.sound"],
672
+ nested: [],
488
673
  },
489
674
  {
490
675
  key: "be-32",
491
676
  bridgeId: "be-32",
677
+ kind: "derivation-step",
492
678
  theorem: "PhysJS.BornOverlap.modulus_sq",
493
- covers: "derivation-step: |c + s i|² = c² + s², which is normSq of one complex matrix element. A sum of squares above 1 is not a probability in [0, 1], the module's rejection of c² + s² > 1. c² − s² is not that square when s ≠ 0. Not the Giacomini–Castro-Ruiz–Brukner transformation, and not a Haar integral. The catalog records this id as not-a-bridge; this lemma does not decide that",
679
+ file: "BornOverlap.lean",
680
+ covers: "|c + s i|² = c² + s², which is normSq of one complex matrix element. A sum of squares above 1 is not a probability in [0, 1], the module's rejection of c² + s² > 1. c² − s² is not that square when s ≠ 0. Not the Giacomini–Castro-Ruiz–Brukner transformation, and not a Haar integral. The catalog records this id as not-a-bridge; this lemma does not decide that",
494
681
  coverage: "covers its statement only",
495
682
  leanProof: "complete",
496
683
  axioms: ["propext", "Classical.choice", "Quot.sound"],
684
+ nested: [],
497
685
  },
498
686
  {
499
687
  key: "be-28",
500
688
  bridgeId: "be-28",
689
+ kind: "property",
501
690
  theorem: "PhysJS.EntropyProduction.nonneg",
502
- covers: "derivation-step: σ = Σ_i J_i X_i is the definition of σ. If every product is ≥ 0 then σ ≥ 0. One flipped sign, with the other products zero and the flipped product strictly positive, is not σ, and that flipped sum is negative. Not the variational maximum-entropy-production principle. The catalog records this id as not-a-bridge; this lemma does not decide that",
691
+ file: "EntropyProduction.lean",
692
+ covers: "σ = Σ_i J_i X_i is the definition of σ. If every product is ≥ 0 then σ ≥ 0. One flipped sign, with the other products zero and the flipped product strictly positive, is not σ, and that flipped sum is negative. Not the variational maximum-entropy-production principle. The catalog records this id as not-a-bridge; this lemma does not decide that",
503
693
  coverage: "covers its statement only",
504
694
  leanProof: "complete",
505
695
  axioms: ["propext", "Classical.choice", "Quot.sound"],
696
+ nested: [],
506
697
  },
507
698
  {
508
699
  key: "be-40",
509
700
  bridgeId: "be-40",
701
+ kind: "bridge",
510
702
  theorem: "PhysJS.CompositeHiggs.scale_free",
511
- covers: "derivation-step: for f ≠ 0 and θ = h/f, V(h)/f⁴ = −α sin²θ + β [sin⁴θ − sin²θ cos²θ]. Both terms carry f⁴, so the ratio depends on h only through θ. The pre-correction first term −α f² sin²θ, divided by f⁴, is −α sin²θ / f². It depends on f, and it agrees with −α sin²θ only when f² = 1. Not SILH matching onto a confining theory. The catalog records this id as not-a-bridge; this lemma does not decide that",
703
+ file: "CompositeHiggs.lean",
704
+ covers: "for f ≠ 0 and θ = h/f, V(h)/f⁴ = −α sin²θ + β [sin⁴θ − sin²θ cos²θ]. Both terms carry f⁴, so the ratio depends on h only through θ. The pre-correction first term −α f² sin²θ, divided by f⁴, is −α sin²θ / f². It depends on f, and it agrees with −α sin²θ only when f² = 1. Not SILH matching onto a confining theory. The catalog records this id as not-a-bridge; this lemma does not decide that",
512
705
  coverage: "covers its statement only",
513
706
  leanProof: "complete",
514
707
  axioms: ["propext", "Classical.choice", "Quot.sound"],
708
+ nested: [],
515
709
  },
516
710
  {
517
711
  key: "be-35",
518
712
  bridgeId: "be-35",
713
+ kind: "derivation-step",
519
714
  theorem: "PhysJS.Crossing.antisymmetry",
520
- covers: "derivation-step: for a real function g, g(u,v) − g(v,u) = −(g(v,u) − g(u,v)). The swap is the negation of a difference. The residual is 0 for every g when u = v, including u = v = 1/4, so that point is not a control. A block that is not symmetric does not vanish at u = 1/2, v = 1/4. Not the infinite sum over (Δ, ℓ), and not positivity or unitarity. The catalog records this id as not-a-bridge; this lemma does not decide that",
715
+ file: "Crossing.lean",
716
+ covers: "for a real function g, g(u,v) − g(v,u) = −(g(v,u) − g(u,v)). The swap is the negation of a difference. The residual is 0 for every g when u = v, including u = v = 1/4, so that point is not a control. A block that is not symmetric does not vanish at u = 1/2, v = 1/4. Not the infinite sum over (Δ, ℓ), and not positivity or unitarity. The catalog records this id as not-a-bridge; this lemma does not decide that",
521
717
  coverage: "covers its statement only",
522
718
  leanProof: "complete",
523
719
  axioms: ["propext", "Classical.choice", "Quot.sound"],
720
+ nested: [],
524
721
  },
525
722
  {
526
723
  key: "be-63",
527
724
  bridgeId: "be-63",
725
+ kind: "bridge",
528
726
  theorem: "PhysJS.Chandrasekhar.prefactor",
529
- covers: "derivation-step: with n = ρ/(μ_e m_u), p_F = ℏ (3π² n)^{1/3}, and P = (1/4) n p_F c, one has P = K_ρ ρ^{4/3} where K_ρ = K_n/(μ_e m_u)^{4/3} and K_n = (ℏ c/4)(3π²)^{1/3}. For the n = 3 Lane–Emden scale the central density cancels, and M = (ω₃⁰ √(3π)/2) (ℏ c/G)^{3/2} (μ_e m_u)^{−2}. ω₃⁰ stays symbolic; the decimal 2.01824 is not in the theorem. With ℏ = c = μ_e = m_u = 1 both routes give the same K. √π/2 in place of √(3π)/2 fails when ω₃⁰ ≠ 0, and dropping ω₃⁰ fails when ω₃⁰ ≠ 1. Not stellar rotation or magnetic support",
727
+ file: "Chandrasekhar.lean",
728
+ covers: "with n = ρ/(μ_e m_u), p_F = ℏ (3π² n)^{1/3}, and P = (1/4) n p_F c, one has P = K_ρ ρ^{4/3} where K_ρ = K_n/(μ_e m_u)^{4/3} and K_n = (ℏ c/4)(3π²)^{1/3}. For the n = 3 Lane–Emden scale the central density cancels, and M = (ω₃⁰ √(3π)/2) (ℏ c/G)^{3/2} (μ_e m_u)^{−2}. ω₃⁰ stays symbolic; the decimal 2.01824 is not in the theorem. With ℏ = c = μ_e = m_u = 1 both routes give the same K. √π/2 in place of √(3π)/2 fails when ω₃⁰ ≠ 0, and dropping ω₃⁰ fails when ω₃⁰ ≠ 1. Not stellar rotation or magnetic support",
530
729
  coverage: "covers its statement only",
531
730
  leanProof: "complete",
532
731
  axioms: ["propext", "Classical.choice", "Quot.sound"],
732
+ nested: [],
533
733
  },
534
734
  {
535
735
  key: "be-30",
536
736
  bridgeId: "be-30",
737
+ kind: "derivation-step",
537
738
  theorem: "PhysJS.Entanglement.first_variation",
538
- covers: "derivation-step: for a smooth curve of full-rank density matrices that stay diagonal in a fixed basis and have trace 1, d/dt S(ρ(t)) = −⟪ρ̇(t), log ρ(t)⟫, the trace inner product. The modular Hamiltonian K = −log ρ is frozen at the base point, and that derivative equals d/dt ⟨K⟩. A finite jump from diag(1/2, 1/2) to diag(3/4, 1/4) leaves ⟨K⟩ unchanged and changes S. Not the holographic first law that identifies K with an area variation",
739
+ file: "Entanglement.lean",
740
+ covers: "for a smooth curve of full-rank density matrices that stay diagonal in a fixed basis and have trace 1, d/dt S(ρ(t)) = −⟪ρ̇(t), log ρ(t)⟫, the trace inner product. The modular Hamiltonian K = −log ρ is frozen at the base point, and that derivative equals d/dt ⟨K⟩. A finite jump from diag(1/2, 1/2) to diag(3/4, 1/4) leaves ⟨K⟩ unchanged and changes S. Not the holographic first law that identifies K with an area variation",
539
741
  coverage: "covers its statement only",
540
742
  leanProof: "complete",
541
743
  axioms: ["propext", "Classical.choice", "Quot.sound"],
744
+ nested: [],
542
745
  },
543
746
  {
544
747
  key: "be-66",
545
748
  bridgeId: "be-66",
749
+ kind: "bridge",
546
750
  theorem: "PhysJS.RadiationPressure.pressure_eq",
547
- covers: "derivation-step: foreshortening I cos θ, normal momentum per energy (cos θ)/c, and an opaque split that deposits the absorbed fraction once and the specular fraction twice give P_n = (I/c)(1+R) cos²θ. R = 0, θ = 0 is I/c and R = 1, θ = 0 is 2I/c. A single cosine is not that pressure when cos θ is neither 0 nor 1. Homogeneity in I and c gives P = C I/c with C = f(1,1) unfixed. Not the Maxwell stress tensor, and not the Eddington luminosity",
751
+ file: "RadiationPressure.lean",
752
+ covers: "foreshortening I cos θ, normal momentum per energy (cos θ)/c, and an opaque split that deposits the absorbed fraction once and the specular fraction twice give P_n = (I/c)(1+R) cos²θ. R = 0, θ = 0 is I/c and R = 1, θ = 0 is 2I/c. A single cosine is not that pressure when cos θ is neither 0 nor 1. Homogeneity in I and c gives P = C I/c with C = f(1,1) unfixed. Not the Maxwell stress tensor, and not the Eddington luminosity",
548
753
  coverage: "covers its statement only",
549
754
  leanProof: "complete",
550
755
  axioms: ["propext", "Classical.choice", "Quot.sound"],
756
+ nested: [],
551
757
  },
552
758
  {
553
759
  key: "be-67",
554
760
  bridgeId: "be-67",
761
+ kind: "bridge",
555
762
  theorem: "PhysJS.AlfvenSpeed.speed_eq",
556
- covers: "derivation-step: one transverse monochromatic polarization along a uniform field, with ∂b/∂t = B ∂v/∂z and ρ ∂v/∂t = (B/μ0) ∂b/∂z, has phase speed |ω/k| = B/√(μ0 ρ) for B > 0, μ0 > 0, ρ > 0, and k ≠ 0. ρ is the density in that momentum premise, read as the total mass density. Proton-only n m_p is a different density when electrons contribute, and a density r ρ with r ≠ 1 is a different speed. Inserting tesla and the SI density into B/√(4πρ) is not the SI speed. 4π×10^{-7} is the permeability stand-in, not a measured μ0. A factor C ≠ 1 is not the catalog speed. Not a kinetic dispersion relation",
763
+ file: "AlfvenSpeed.lean",
764
+ covers: "one transverse monochromatic polarization along a uniform field, with ∂b/∂t = B ∂v/∂z and ρ ∂v/∂t = (B/μ0) ∂b/∂z, has phase speed |ω/k| = B/√(μ0 ρ) for B > 0, μ0 > 0, ρ > 0, and k ≠ 0. ρ is the density in that momentum premise, read as the total mass density. Proton-only n m_p is a different density when electrons contribute, and a density r ρ with r ≠ 1 is a different speed. Inserting tesla and the SI density into B/√(4πρ) is not the SI speed. 4π×10^{-7} is the permeability stand-in, not a measured μ0. A factor C ≠ 1 is not the catalog speed. Not a kinetic dispersion relation",
557
765
  coverage: "covers its statement only",
558
766
  leanProof: "complete",
559
767
  axioms: ["propext", "Classical.choice", "Quot.sound"],
768
+ nested: [],
560
769
  },
561
770
  {
562
771
  key: "be-68",
563
772
  bridgeId: "be-68",
773
+ kind: "bridge",
564
774
  theorem: "PhysJS.TolmanEhrenfest.hydrostatic_constant",
565
- covers: "derivation-step: on a static interval with g_00 < 0, hydrostatic balance dp = -(ρ+p) d ln √(-g_00) and the equilibrium Gibbs relation dp = (ρ+p) d ln T, with ρ+p ≠ 0, give T √(-g_00) equal at the endpoints. The 1930 writing T √g_44 agrees when g_44 = -g_00. Real.sqrt g_00 = 0 when g_00 < 0, so the product without the minus is 0. d ln T = 0 is not g dr/c². Not a horizon temperature and not PhysJS.HawkingUnruh.dictionary. T ‖ξ‖ = const is out of scope. The hydrostatic equation is not derived from ∇_μ T^{μν} = 0, and the Gibbs relation is not derived from an equation of state",
775
+ file: "TolmanEhrenfest.lean",
776
+ covers: "on a static interval with g_00 < 0, hydrostatic balance dp = -(ρ+p) d ln √(-g_00) and the equilibrium Gibbs relation dp = (ρ+p) d ln T, with ρ+p ≠ 0, give T √(-g_00) equal at the endpoints. The 1930 writing T √g_44 agrees when g_44 = -g_00. Real.sqrt g_00 = 0 when g_00 < 0, so the product without the minus is 0. d ln T = 0 is not g dr/c². Not a horizon temperature and not PhysJS.HawkingUnruh.dictionary. T ‖ξ‖ = const is out of scope. The hydrostatic equation is not derived from ∇_μ T^{μν} = 0, and the Gibbs relation is not derived from an equation of state",
566
777
  coverage: "covers its statement only",
567
778
  leanProof: "complete",
568
779
  axioms: ["propext", "Classical.choice", "Quot.sound"],
780
+ nested: [],
569
781
  },
570
782
  {
571
783
  key: "be-69",
572
784
  bridgeId: "be-69",
785
+ kind: "bridge",
573
786
  theorem: "PhysJS.FastMagnetosonic.speed_eq",
574
- covers: "derivation-step: a monochromatic compressional polarization perpendicular to a uniform field, with ∂b/∂t = −B ∂v/∂x, ∂δρ/∂t = −ρ ∂v/∂x, δp = c_s² δρ, and ρ ∂v/∂t = −∂δp/∂x − (B/μ0) ∂b/∂x, has phase speed |ω/k| = √(c_s² + B²/(μ0 ρ)) for μ0 > 0, ρ > 0, and k ≠ 0. The velocity wave is not identically zero. c_s² = γ p / ρ is a reading of the closure, not an energy equation. The textbook quartic at k_∥ = 0 has roots ω² = 0 and ω² = (c_s² + v_A²) k²; ω = 0 does not solve compressional induction. √(c_s² + v_A²) is not c_s, not v_A, and not c_s + v_A when the other speed is nonzero. c_s = 0 recovers B/√(μ0 ρ), the Alfvén value of a different polarization. A factor C ≠ 1 is not the catalog speed. Not a kinetic dispersion relation, and not the oblique fast mode. The linearized equations are hypotheses",
787
+ file: "FastMagnetosonic.lean",
788
+ covers: "a monochromatic compressional polarization perpendicular to a uniform field, with ∂b/∂t = −B ∂v/∂x, ∂δρ/∂t = −ρ ∂v/∂x, δp = c_s² δρ, and ρ ∂v/∂t = −∂δp/∂x − (B/μ0) ∂b/∂x, has phase speed |ω/k| = √(c_s² + B²/(μ0 ρ)) for μ0 > 0, ρ > 0, and k ≠ 0. The velocity wave is not identically zero. c_s² = γ p / ρ is a reading of the closure, not an energy equation. The textbook quartic at k_∥ = 0 has roots ω² = 0 and ω² = (c_s² + v_A²) k²; ω = 0 does not solve compressional induction. √(c_s² + v_A²) is not c_s, not v_A, and not c_s + v_A when the other speed is nonzero. c_s = 0 recovers B/√(μ0 ρ), the Alfvén value of a different polarization. A factor C ≠ 1 is not the catalog speed. Not a kinetic dispersion relation, and not the oblique fast mode. The linearized equations are hypotheses",
575
789
  coverage: "covers its statement only",
576
790
  leanProof: "complete",
577
791
  axioms: ["propext", "Classical.choice", "Quot.sound"],
578
- perpendicularQuartic: {
579
- theorem: "PhysJS.FastMagnetosonic.perpendicular_of_dispersion",
580
- covers: "derivation-step: if ω⁴ − ω² k² (c_s² + v_A²) + c_s² v_A² k² k_∥² = 0 and k_∥ = 0, then ω² = 0 or ω² = (c_s² + v_A²) k². The quartic is a hypothesis. The compressional polarization selects the second root",
581
- coverage: "covers its statement only",
582
- leanProof: "complete",
583
- axioms: ["propext", "Classical.choice", "Quot.sound"],
584
- },
792
+ nested: [
793
+ {
794
+ name: "perpendicularQuartic",
795
+ kind: "derivation-step",
796
+ theorem: "PhysJS.FastMagnetosonic.perpendicular_of_dispersion",
797
+ file: "FastMagnetosonic.lean",
798
+ covers: "if ω⁴ − ω² k² (c_s² + v_A²) + c_s² v_A² k² k_∥² = 0 and k_∥ = 0, then ω² = 0 or ω² = (c_s² + v_A²) k². The quartic is a hypothesis. The compressional polarization selects the second root",
799
+ coverage: "covers its statement only",
800
+ leanProof: "complete",
801
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
802
+ },
803
+ ],
585
804
  },
586
805
  {
587
806
  key: "be-70",
588
807
  bridgeId: "be-70",
808
+ kind: "bridge",
589
809
  theorem: "PhysJS.EinsteinRelation.diffusion_eq",
590
- covers: "derivation-step: for the Boltzmann profile n = n_ref exp(−q V/(k_B T)) with n_ref > 0, k_B T ≠ 0, and q ≠ 0, a nonzero field E = −dV/dx at which the drift flux μ n E cancels the diffusion flux D dn/dx gives D = μ k_B T / q. The force-mobility writing D = μ_force k_B T needs μ_force = μ/q. Dropping q fails when q ≠ 1. The Fermi-liquid form μ E_F / q fails when E_F ≠ k_B T. Stokes–Einstein fails unless μ/q = 1/(6 π η a). A factor C ≠ 1 is not this diffusivity. Not a master equation, and not a Fermi liquid",
810
+ file: "EinsteinRelation.lean",
811
+ covers: "for the Boltzmann profile n = n_ref exp(−q V/(k_B T)) with n_ref > 0, k_B T ≠ 0, and q ≠ 0, a nonzero field E = −dV/dx at which the drift flux μ n E cancels the diffusion flux D dn/dx gives D = μ k_B T / q. The force-mobility writing D = μ_force k_B T needs μ_force = μ/q. Dropping q fails when q ≠ 1. The Fermi-liquid form μ E_F / q fails when E_F ≠ k_B T. Stokes–Einstein fails unless μ/q = 1/(6 π η a). A factor C ≠ 1 is not this diffusivity. Not a master equation, and not a Fermi liquid",
591
812
  coverage: "covers its statement only",
592
813
  leanProof: "complete",
593
814
  axioms: ["propext", "Classical.choice", "Quot.sound"],
815
+ nested: [],
594
816
  },
595
817
  {
596
818
  key: "be-71",
597
819
  bridgeId: "be-71",
820
+ kind: "bridge",
598
821
  theorem: "PhysJS.Clapeyron.slope_eq",
599
- covers: "derivation-step: where the specific Gibbs energies agree along coexistence and each phase obeys dg = −s dT + v dP, dP/dT = (s2−s1)/(v2−v1). With L = T (s2−s1), T ≠ 0, and Δv ≠ 0, dP/dT = L/(T Δv). Dropping T fails when T ≠ 1. Replacing Δv by one phase volume fails when the other volume is nonzero. A factor C ≠ 1 is not this slope. Not the ideal-gas integrated vapor-pressure law. The Gibbs differential is a hypothesis, not a Legendre transform",
822
+ file: "Clapeyron.lean",
823
+ covers: "where the specific Gibbs energies agree along coexistence and each phase obeys dg = −s dT + v dP, dP/dT = (s2−s1)/(v2−v1). With L = T (s2−s1), T ≠ 0, and Δv ≠ 0, dP/dT = L/(T Δv). Dropping T fails when T ≠ 1. Replacing Δv by one phase volume fails when the other volume is nonzero. A factor C ≠ 1 is not this slope. Not the ideal-gas integrated vapor-pressure law. The Gibbs differential is a hypothesis, not a Legendre transform",
600
824
  coverage: "covers its statement only",
601
825
  leanProof: "complete",
602
826
  axioms: ["propext", "Classical.choice", "Quot.sound"],
827
+ nested: [],
603
828
  },
604
829
  {
605
830
  key: "be-72",
606
831
  bridgeId: "be-72",
832
+ kind: "bridge",
607
833
  theorem: "PhysJS.GravitationalRedshift.frequency_ratio",
608
- covers: "derivation-step: two static observers of one coordinate period, with ν √(−g_00) = 1/Δt and g_00 < 0, have ν1/ν2 = √(−g2)/√(−g1) = √(g2/g1). If the Tolman products T √(−g_00) also agree, then T1/T2 = ν1/ν2. Equal temperatures on g_00 = −1 and g_00 = −4 are not a Tolman equilibrium, while the frequency ratio is 2. For g_00 = −(1+2Φ/c²) at c = 1, Φ = 0 and Φ = 4, the exact ratio is neither (Φ2−Φ1)/c² nor 1+(Φ2−Φ1)/c². z = 0 is not Φ/c². Not PhysJS.TolmanEhrenfest.hydrostatic_constant, not a horizon temperature, and not PhysJS.HawkingUnruh.dictionary",
834
+ file: "GravitationalRedshift.lean",
835
+ covers: "two static observers of one coordinate period, with ν √(−g_00) = 1/Δt and g_00 < 0, have ν1/ν2 = √(−g2)/√(−g1) = √(g2/g1). If the Tolman products T √(−g_00) also agree, then T1/T2 = ν1/ν2. Equal temperatures on g_00 = −1 and g_00 = −4 are not a Tolman equilibrium, while the frequency ratio is 2. For g_00 = −(1+2Φ/c²) at c = 1, Φ = 0 and Φ = 4, the exact ratio is neither (Φ2−Φ1)/c² nor 1+(Φ2−Φ1)/c². z = 0 is not Φ/c². Not PhysJS.TolmanEhrenfest.hydrostatic_constant, not a horizon temperature, and not PhysJS.HawkingUnruh.dictionary",
609
836
  coverage: "covers its statement only",
610
837
  leanProof: "complete",
611
838
  axioms: ["propext", "Classical.choice", "Quot.sound"],
612
- tolmanRatio: {
613
- theorem: "PhysJS.GravitationalRedshift.tolman_same_ratio",
614
- covers: "derivation-step: if T √(−g_00) agrees at two static observers and the frequency ratio equals √(−g2)/√(−g1), then T1/T2 = ν1/ν2. Neither factor is derived from the other",
615
- coverage: "covers its statement only",
616
- leanProof: "complete",
617
- axioms: ["propext", "Classical.choice", "Quot.sound"],
618
- },
839
+ nested: [
840
+ {
841
+ name: "tolmanRatio",
842
+ kind: "derivation-step",
843
+ theorem: "PhysJS.GravitationalRedshift.tolman_same_ratio",
844
+ file: "GravitationalRedshift.lean",
845
+ covers: "if T √(−g_00) agrees at two static observers and the frequency ratio equals √(−g2)/√(−g1), then T1/T2 = ν1/ν2. Neither factor is derived from the other",
846
+ coverage: "covers its statement only",
847
+ leanProof: "complete",
848
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
849
+ },
850
+ ],
619
851
  },
620
852
  {
621
853
  key: "be-73",
622
854
  bridgeId: "be-73",
855
+ kind: "bridge",
623
856
  theorem: "PhysJS.KelvinRelation.peltier_eq",
624
- covers: "derivation-step: for J_e = L11 E/T + L12 (−∇T)/T² and J_q = L21 E/T + L22 (−∇T)/T², the open-circuit Seebeck coefficient S = E/∇T and the isothermal Peltier coefficient Π = J_q/J_e satisfy Π = S T when L12 = L21. That equality is ThermoelectricOnsager.onsager, a structure field naming microscopic reversibility, not an axiom. Without it the two coefficients disagree. Not the first Thomson relation μ = T dS/dT, and not a measured thermopower. The linear fluxes are hypotheses",
857
+ file: "KelvinRelation.lean",
858
+ covers: "for J_e = L11 E/T + L12 (−∇T)/T² and J_q = L21 E/T + L22 (−∇T)/T², the open-circuit Seebeck coefficient S = E/∇T and the isothermal Peltier coefficient Π = J_q/J_e satisfy Π = S T when L12 = L21. That equality is ThermoelectricOnsager.onsager, a structure field naming microscopic reversibility, not an axiom. Without it the two coefficients disagree. Not the first Thomson relation μ = T dS/dT, and not a measured thermopower. The linear fluxes are hypotheses",
625
859
  coverage: "covers its statement only",
626
860
  leanProof: "complete",
627
861
  axioms: ["propext", "Classical.choice", "Quot.sound"],
862
+ nested: [],
628
863
  },
629
864
  {
630
865
  key: "be-74",
631
866
  bridgeId: "be-74",
867
+ kind: "bridge",
632
868
  theorem: "PhysJS.MagneticPressure.pressure_eq",
633
- covers: "derivation-step: a linear inductor with dU/dI = L I and U(0) = 0 stores U = (L/2) I². A long solenoid with B = μ0 n I and flux linkage Λ = (n ℓ) B A has L = μ0 n² V. At fixed current the battery supplies I ΔΛ. The stored energy rises by half of that, and the difference is the mechanical work p ΔV, so p = B²/(2 μ0). Homogeneity in B and μ0 gives p = C B²/μ0 with C unfixed. C = 1 is the battery work per volume, not this pressure. Not a kinetic pressure, and not a Lagrangian derivation of the Maxwell stress tensor. Ampere's law, the flux linkage, and the quasistatic work balance are hypotheses",
869
+ file: "MagneticPressure.lean",
870
+ covers: "a linear inductor with dU/dI = L I and U(0) = 0 stores U = (L/2) I². A long solenoid with B = μ0 n I and flux linkage Λ = (n ℓ) B A has L = μ0 n² V. At fixed current the battery supplies I ΔΛ. The stored energy rises by half of that, and the difference is the mechanical work p ΔV, so p = B²/(2 μ0). Homogeneity in B and μ0 gives p = C B²/μ0 with C unfixed. C = 1 is the battery work per volume, not this pressure. Not a kinetic pressure, and not a Lagrangian derivation of the Maxwell stress tensor. Ampere's law, the flux linkage, and the quasistatic work balance are hypotheses",
634
871
  coverage: "covers its statement only",
635
872
  leanProof: "complete",
636
873
  axioms: ["propext", "Classical.choice", "Quot.sound"],
874
+ nested: [],
637
875
  },
638
876
  {
639
877
  key: "be-75",
640
878
  bridgeId: "be-75",
879
+ kind: "bridge",
641
880
  theorem: "PhysJS.LondonPenetration.depth_eq",
642
- covers: "derivation-step: on B(x) = B0 exp(−x/λ) with λ > 0, Ampere's law j = −(1/μ0) dB/dx and the London equation dj/dx = −(n e²/m) B give λ = √(m/(μ0 n e²)). e is the elementary charge. The dimension matrix of {m, μ0, n, e} admits both that monomial and μ0 e²/m, so units do not choose. Those lengths disagree when n (μ0 e²/m)³ ≠ 1. The growing exponential is not the screened field. Replacing e by 2e at the same n and m fails, and dropping the square on e fails when e ≠ 1. A factor C ≠ 1 is not this depth. Not the classical skin depth. The London equation and Ampere's law are hypotheses",
881
+ file: "LondonPenetration.lean",
882
+ covers: "on B(x) = B0 exp(−x/λ) with λ > 0, Ampere's law j = −(1/μ0) dB/dx and the London equation dj/dx = −(n e²/m) B give λ = √(m/(μ0 n e²)). e is the elementary charge. The dimension matrix of {m, μ0, n, e} admits both that monomial and μ0 e²/m, so units do not choose. Those lengths disagree when n (μ0 e²/m)³ ≠ 1. The growing exponential is not the screened field. Replacing e by 2e at the same n and m fails, and dropping the square on e fails when e ≠ 1. A factor C ≠ 1 is not this depth. Not the classical skin depth. The London equation and Ampere's law are hypotheses",
643
883
  coverage: "covers its statement only",
644
884
  leanProof: "complete",
645
885
  axioms: ["propext", "Classical.choice", "Quot.sound"],
886
+ nested: [],
646
887
  },
647
888
  {
648
889
  key: "be-76",
649
890
  bridgeId: "be-76",
891
+ kind: "bridge",
650
892
  theorem: "PhysJS.PlasmaBeta.beta_eq",
651
- covers: "derivation-step: β = p_gas / p_B where p_B is PhysJS.MagneticPressure.pressure_eq, so β = p_gas / (B²/(2 μ0)) = 2 μ0 p_gas / B². The ideal-gas closure p_gas = n k_B T gives β = 2 μ0 n k_B T / B². B ≠ 0. Using B²/μ0 in place of the magnetic pressure is a different ratio. The constant 1 is dimensionless and is not this beta when the ratio is not 1. A factor C ≠ 1 is not this beta. Dropping p = n k_B T fails. Not a unique monomial, and not a plasma-β inequality",
893
+ file: "PlasmaBeta.lean",
894
+ covers: "β = p_gas / p_B where p_B is PhysJS.MagneticPressure.pressure_eq, so β = p_gas / (B²/(2 μ0)) = 2 μ0 p_gas / B². The ideal-gas closure p_gas = n k_B T gives β = 2 μ0 n k_B T / B². B ≠ 0. Using B²/μ0 in place of the magnetic pressure is a different ratio. The constant 1 is dimensionless and is not this beta when the ratio is not 1. A factor C ≠ 1 is not this beta. Dropping p = n k_B T fails. Not a unique monomial, and not a plasma-β inequality",
652
895
  coverage: "covers its statement only",
653
896
  leanProof: "complete",
654
897
  axioms: ["propext", "Classical.choice", "Quot.sound"],
898
+ nested: [],
655
899
  },
656
900
  {
657
901
  key: "be-77",
658
902
  bridgeId: "be-77",
903
+ kind: "bridge",
659
904
  theorem: "PhysJS.HagenPoiseuille.flow_eq",
660
- covers: "derivation-step: steady axisymmetric Newtonian flow with d/dr (r du/dr) = (G/μ) r, centerline slope 0, and no-slip u(R) = 0 integrates to u = (G/(4μ))(r²−R²). With G = −ΔP/L the flux Q = ∫ u 2π r dr is π R⁴ ΔP/(8 μ L). Darcy's definition then gives f_D Re = 64. The same wall shear with the Fanning normalization is 16. A factor other than 8 is not this flux. Not a square duct. The axial balance, no-slip, and the Darcy definitions are hypotheses",
905
+ file: "HagenPoiseuille.lean",
906
+ covers: "steady axisymmetric Newtonian flow with d/dr (r du/dr) = (G/μ) r, centerline slope 0, and no-slip u(R) = 0 integrates to u = (G/(4μ))(r²−R²). With G = −ΔP/L the flux Q = ∫ u 2π r dr is π R⁴ ΔP/(8 μ L). Darcy's definition then gives f_D Re = 64. The same wall shear with the Fanning normalization is 16. A factor other than 8 is not this flux. Not a square duct. The axial balance, no-slip, and the Darcy definitions are hypotheses",
661
907
  coverage: "covers its statement only",
662
908
  leanProof: "complete",
663
909
  axioms: ["propext", "Classical.choice", "Quot.sound"],
910
+ nested: [],
664
911
  },
665
912
  {
666
913
  key: "be-78",
667
914
  bridgeId: "be-78",
915
+ kind: "bridge",
668
916
  theorem: "PhysJS.EulerBuckling.critical_load",
669
- covers: "derivation-step: the Euler–Bernoulli balance y'' = −ω² y with ω² = P/(E I) and pinned ends y(0) = y(L) = 0 has the eigenfunction sin(π x/L) at P = π² E I/L², and every nontrivial solution has ω L = n π for a nonzero integer n, so the load is at least that value. The clamped-free column is π² E I/(4 L²). That factor is not the pinned load. Not read off from units. The beam equation is a hypothesis",
917
+ file: "EulerBuckling.lean",
918
+ covers: "the Euler–Bernoulli balance y'' = −ω² y with ω² = P/(E I) and pinned ends y(0) = y(L) = 0 has the eigenfunction sin(π x/L) at P = π² E I/L², and every nontrivial solution has ω L = n π for a nonzero integer n, so the load is at least that value. The clamped-free column is π² E I/(4 L²). That factor is not the pinned load. Not read off from units. The beam equation is a hypothesis",
670
919
  coverage: "covers its statement only",
671
920
  leanProof: "complete",
672
921
  axioms: ["propext", "Classical.choice", "Quot.sound"],
922
+ nested: [],
673
923
  },
674
924
  {
675
925
  key: "be-79",
676
926
  bridgeId: "be-79",
927
+ kind: "bridge",
677
928
  theorem: "PhysJS.PullIn.pull_in_eq",
678
- covers: "derivation-step: C = ε0 A/g has dC/dg = −ε0 A/g². Equilibrium of a linear spring against the coenergy force is k(g0−g) = ε0 A V²/(2 g²), so V² is proportional to (g0−g) g². The derivative 2 g0 g − 3 g² vanishes only at g = 0 and g = 2 g0/3, and the second derivative at the fold is −2 g0. Substituting the gap gives V_pi² = 8 k g0³/(27 ε0 A) = 8 k g0²/(27 C0) with C0 = ε0 A/g0. g = g0/2 is not the fold. Not a fringing field. The parallel-plate law and the quasi-static balance are hypotheses",
929
+ file: "PullIn.lean",
930
+ covers: "C = ε0 A/g has dC/dg = −ε0 A/g². Equilibrium of a linear spring against the coenergy force is k(g0−g) = ε0 A V²/(2 g²), so V² is proportional to (g0−g) g². The derivative 2 g0 g − 3 g² vanishes only at g = 0 and g = 2 g0/3, and the second derivative at the fold is −2 g0. Substituting the gap gives V_pi² = 8 k g0³/(27 ε0 A) = 8 k g0²/(27 C0) with C0 = ε0 A/g0. g = g0/2 is not the fold. Not a fringing field. The parallel-plate law and the quasi-static balance are hypotheses",
679
931
  coverage: "covers its statement only",
680
932
  leanProof: "complete",
681
933
  axioms: ["propext", "Classical.choice", "Quot.sound"],
934
+ nested: [],
682
935
  },
683
936
  {
684
937
  key: "be-80",
685
938
  bridgeId: "be-80",
939
+ kind: "bridge",
686
940
  theorem: "PhysJS.MottGurney.current_eq",
687
- covers: "derivation-step: drift J = q n μ E and Poisson dE/dx = q n/ε give E dE/dx = J/(ε μ). With E(0) = 0 the integral is E²/2 = J x/(ε μ). The nonnegative root integrated from 0 to d is V = sqrt(2 J/(ε μ)) (2/3) d^{3/2}, so J = (9/8) ε μ V²/d³. A factor other than 9/8 is not this current. Not Child–Langmuir. Drift, Poisson, and the injecting contact are hypotheses",
941
+ file: "MottGurney.lean",
942
+ covers: "drift J = q n μ E and Poisson dE/dx = q n/ε give E dE/dx = J/(ε μ). With E(0) = 0 the integral is E²/2 = J x/(ε μ). The nonnegative root integrated from 0 to d is V = sqrt(2 J/(ε μ)) (2/3) d^{3/2}, so J = (9/8) ε μ V²/d³. A factor other than 9/8 is not this current. Not Child–Langmuir. Drift, Poisson, and the injecting contact are hypotheses",
688
943
  coverage: "covers its statement only",
689
944
  leanProof: "complete",
690
945
  axioms: ["propext", "Classical.choice", "Quot.sound"],
946
+ nested: [],
691
947
  },
692
948
  {
693
949
  key: "be-81",
694
950
  bridgeId: "be-81",
951
+ kind: "bridge",
695
952
  theorem: "PhysJS.ChildLangmuir.current_eq",
696
- covers: "derivation-step: collisionless energy (1/2) m v² = e φ, J = ρ v, and Poisson φ'' = ρ/ε0 give J = ε0 φ'' v. A power φ ∝ x^α makes φ'' v independent of x only for α = 4/3. The profile φ = V (x/d)^{4/3} has φ(0) = 0, φ(d) = V, and cathode field 0, and for x > 0 its current is (4 ε0/9) sqrt(2 e/m) V^{3/2}/d². e is the elementary charge. The Mott–Gurney exponent 3/2 does not cancel. Poisson is not claimed at x = 0. Not a drift-only solid",
953
+ file: "ChildLangmuir.lean",
954
+ covers: "collisionless energy (1/2) m v² = e φ, J = ρ v, and Poisson φ'' = ρ/ε0 give J = ε0 φ'' v. A power φ ∝ x^α makes φ'' v independent of x only for α = 4/3. The profile φ = V (x/d)^{4/3} has φ(0) = 0, φ(d) = V, and cathode field 0, and for x > 0 its current is (4 ε0/9) sqrt(2 e/m) V^{3/2}/d². e is the elementary charge. The Mott–Gurney exponent 3/2 does not cancel. Poisson is not claimed at x = 0. Not a drift-only solid",
697
955
  coverage: "covers its statement only",
698
956
  leanProof: "complete",
699
957
  axioms: ["propext", "Classical.choice", "Quot.sound"],
958
+ nested: [],
700
959
  },
701
960
  {
702
961
  key: "be-82",
703
962
  bridgeId: "be-82",
963
+ kind: "bridge",
704
964
  theorem: "PhysJS.ShockleyDiode.shockley_eq",
705
- covers: "derivation-step: quasi-equilibrium multiplies the equilibrium flux by exp(e V/(η k_B T)). Ideality 1 sets η = 1. Detailed balance sets the reverse flux equal to the forward flux at V = 0, and low injection keeps that reverse flux under bias. The net current is I = I_s (exp(e V/(k_B T)) − 1). Zero bias carries zero current. Ideality 2 is not this current when e V ≠ 0. e is the elementary charge. Not a diffusion-length ODE",
965
+ file: "ShockleyDiode.lean",
966
+ covers: "quasi-equilibrium multiplies the equilibrium flux by exp(e V/(η k_B T)). Ideality 1 sets η = 1. Detailed balance sets the reverse flux equal to the forward flux at V = 0, and low injection keeps that reverse flux under bias. The net current is I = I_s (exp(e V/(k_B T)) − 1). Zero bias carries zero current. Ideality 2 is not this current when e V ≠ 0. e is the elementary charge. Not a diffusion-length ODE",
706
967
  coverage: "covers its statement only",
707
968
  leanProof: "complete",
708
969
  axioms: ["propext", "Classical.choice", "Quot.sound"],
970
+ nested: [],
709
971
  },
710
972
  {
711
973
  key: "be-83",
712
974
  bridgeId: "be-83",
975
+ kind: "bridge",
713
976
  theorem: "PhysJS.Thomson.thomson_eq",
714
- covers: "derivation-step: the Kelvin relation Π(t) = S(t) t, which is PhysJS.KelvinRelation.peltier_eq read along temperature, and the Thomson split μ = dΠ/dT − S, give μ = T dS/dT by the product rule. dΠ/dT is not μ when S T ≠ 0. Not a second copy of Π = S T. The functional Kelvin relation and the Thomson split are hypotheses",
977
+ file: "Thomson.lean",
978
+ covers: "the Kelvin relation Π(t) = S(t) t, which is PhysJS.KelvinRelation.peltier_eq read along temperature, and the Thomson split μ = dΠ/dT − S, give μ = T dS/dT by the product rule. dΠ/dT is not μ when S T ≠ 0. Not a second copy of Π = S T. The functional Kelvin relation and the Thomson split are hypotheses",
715
979
  coverage: "covers its statement only",
716
980
  leanProof: "complete",
717
981
  axioms: ["propext", "Classical.choice", "Quot.sound"],
982
+ nested: [],
718
983
  },
719
984
  {
720
985
  key: "be-84",
721
986
  bridgeId: "be-84",
987
+ kind: "bridge",
722
988
  theorem: "PhysJS.FourPoint.sheet_eq",
723
- covers: "derivation-step: on an infinite sheet the radial field of a point current is (I R_s)/(2 π r), and the potential drop is the integral of 1/r. Probes at 0, s, 2s, and 3s, with current in at 0 and out at 3s, each contribute (I R_s/(2 π)) ln 2 on the inner pair. Superposition gives R_s = (π/ln 2)(V/I). A sink at 4s gives 2π/ln 3 instead. Not PhysJS.Crossing.antisymmetry. The Laplace field and linear superposition are hypotheses",
989
+ file: "FourPoint.lean",
990
+ covers: "on an infinite sheet the radial field of a point current is (I R_s)/(2 π r), and the potential drop is the integral of 1/r. Probes at 0, s, 2s, and 3s, with current in at 0 and out at 3s, each contribute (I R_s/(2 π)) ln 2 on the inner pair. Superposition gives R_s = (π/ln 2)(V/I). A sink at 4s gives 2π/ln 3 instead. Not PhysJS.Crossing.antisymmetry. The Laplace field and linear superposition are hypotheses",
724
991
  coverage: "covers its statement only",
725
992
  leanProof: "complete",
726
993
  axioms: ["propext", "Classical.choice", "Quot.sound"],
994
+ nested: [],
727
995
  },
728
996
  {
729
997
  key: "be-85",
730
998
  bridgeId: "be-85",
999
+ kind: "bridge",
731
1000
  theorem: "PhysJS.ShotNoise.shot_eq",
732
- covers: "derivation-step: in a window of length T the count N has mean (I/e) T, and the Poisson premise is Var(N) = mean(N). Charge e scales the variance by e² and the windowed current divides by T, so Var(I) = e I/T. The one-sided bandwidth of that window is Δf = 1/(2 T), and S_I = Var(I)/Δf is 2 e I. The two-sided bandwidth Δf = 1/T gives e I. e is the elementary charge. Not a Fourier theorem and not Johnson–Nyquist. The Poisson variance and the one-sided convention are hypotheses",
1001
+ file: "ShotNoise.lean",
1002
+ covers: "in a window of length T the count N has mean (I/e) T, and the Poisson premise is Var(N) = mean(N). Charge e scales the variance by e² and the windowed current divides by T, so Var(I) = e I/T. The one-sided bandwidth of that window is Δf = 1/(2 T), and S_I = Var(I)/Δf is 2 e I. The two-sided bandwidth Δf = 1/T gives e I. e is the elementary charge. Not a Fourier theorem and not Johnson–Nyquist. The Poisson variance and the one-sided convention are hypotheses",
733
1003
  coverage: "covers its statement only",
734
1004
  leanProof: "complete",
735
1005
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1006
+ nested: [],
736
1007
  },
737
1008
  {
738
1009
  key: "be-86",
739
1010
  bridgeId: "be-86",
1011
+ kind: "bridge",
740
1012
  theorem: "PhysJS.ReynoldsAnalogy.reynolds_eq",
741
- covers: "derivation-step: wall fluxes τ = μ du/dy and q = k dT/dy, with C_f = τ/(ρ U²/2), h = q/ΔT, St = h/(ρ U c_p), and Pr = μ c_p/k, satisfy St Pr = C_f/2 when the normalized wall gradients agree. That common slope is the equal-diffusivity hypothesis. At Pr = 1, St = C_f/2. Pr ≠ 1 with nonzero skin friction is not this equality. Not a Nusselt correlation",
1013
+ file: "ReynoldsAnalogy.lean",
1014
+ covers: "wall fluxes τ = μ du/dy and q = k dT/dy, with C_f = τ/(ρ U²/2), h = q/ΔT, St = h/(ρ U c_p), and Pr = μ c_p/k, satisfy St Pr = C_f/2 when the normalized wall gradients agree. That common slope is the equal-diffusivity hypothesis. At Pr = 1, St = C_f/2. Pr ≠ 1 with nonzero skin friction is not this equality. Not a Nusselt correlation",
742
1015
  coverage: "covers its statement only",
743
1016
  leanProof: "complete",
744
1017
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1018
+ nested: [],
745
1019
  },
746
1020
  {
747
1021
  key: "be-87",
748
1022
  bridgeId: "be-87",
1023
+ kind: "bridge",
749
1024
  theorem: "PhysJS.CapacitorNoise.noise_eq",
750
- covers: "derivation-step: dU/dV = C V and U(0) = 0 integrate to U = (C/2) V². The normalized Boltzmann weight of that energy is the Gaussian of mean 0 and variance k_B T/C, because the partition function is the Gaussian integral. The mean square on that law is k_B T/C, and (C/2) of it is (1/2) k_B T. (3/2) k_B T/C is not this variance. Dropping the energy half replaces it by k_B T/(2 C). Not three kinetic degrees of freedom",
1025
+ file: "CapacitorNoise.lean",
1026
+ covers: "dU/dV = C V and U(0) = 0 integrate to U = (C/2) V². The normalized Boltzmann weight of that energy is the Gaussian of mean 0 and variance k_B T/C, because the partition function is the Gaussian integral. The mean square on that law is k_B T/C, and (C/2) of it is (1/2) k_B T. (3/2) k_B T/C is not this variance. Dropping the energy half replaces it by k_B T/(2 C). Not three kinetic degrees of freedom",
751
1027
  coverage: "covers its statement only",
752
1028
  leanProof: "complete",
753
1029
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1030
+ nested: [],
754
1031
  },
755
1032
  {
756
1033
  key: "be-88",
757
1034
  bridgeId: "be-88",
1035
+ kind: "bridge",
758
1036
  theorem: "PhysJS.FermiSea.fermi_sea",
759
- covers: "derivation-step: two spin states times the sphere (4π/3) k_F³/(2π)³ give n, so k_F³ = 3 π² n and the nonnegative root is k_F = (3 π² n)^{1/3}. The isotropic parabola E = ℏ² k²/(2 m*) is E_F at k_F. Its first derivative is v_F = ℏ k_F/m*, and ℏ⁻² times the second derivative is 1/m*. One spin is k_F³ = 6 π² n. Not a lattice band. The band, the two-spin count, and T = 0 are hypotheses",
1037
+ file: "FermiSea.lean",
1038
+ covers: "two spin states times the sphere (4π/3) k_F³/(2π)³ give n, so k_F³ = 3 π² n and the nonnegative root is k_F = (3 π² n)^{1/3}. The isotropic parabola E = ℏ² k²/(2 m*) is E_F at k_F. Its first derivative is v_F = ℏ k_F/m*, and ℏ⁻² times the second derivative is 1/m*. One spin is k_F³ = 6 π² n. Not a lattice band. The band, the two-spin count, and T = 0 are hypotheses",
760
1039
  coverage: "covers its statement only",
761
1040
  leanProof: "complete",
762
1041
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1042
+ nested: [],
763
1043
  },
764
1044
  {
765
1045
  key: "be-89",
766
1046
  bridgeId: "be-89",
1047
+ kind: "bridge",
767
1048
  theorem: "PhysJS.DebyeCutoff.debye_cutoff",
768
- covers: "derivation-step: three acoustic branches filling 3n states, 3·(4π/3) k_D³/(2π)³ = 3n, give k_D³ = 6 π² n. A linear branch ω_D = v_s k_D is ω_D = v_s (6 π² n)^{1/3}. Equating the three-branch sum to n gives k_D³ = 2 π² n. The branch count and the common speed are hypotheses",
1049
+ file: "DebyeCutoff.lean",
1050
+ covers: "three acoustic branches filling 3n states, 3·(4π/3) k_D³/(2π)³ = 3n, give k_D³ = 6 π² n. A linear branch ω_D = v_s k_D is ω_D = v_s (6 π² n)^{1/3}. Equating the three-branch sum to n gives k_D³ = 2 π² n. The branch count and the common speed are hypotheses",
769
1051
  coverage: "covers its statement only",
770
1052
  leanProof: "complete",
771
1053
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1054
+ nested: [],
772
1055
  },
773
1056
  {
774
1057
  key: "be-90",
775
1058
  bridgeId: "be-90",
1059
+ kind: "bridge",
776
1060
  theorem: "PhysJS.DebyeHeat.debye_heat",
777
- covers: "derivation-step: the mode integral ∫₀^{ω_D} 9 N ω²/ω_D³ dω = 3 N. The Debye energy with the integral extended to infinity is the hypothesis U = 9 N k_B T (T/θ_D)³ I, and I = π⁴/15 is a hypothesis, not an evaluation of ∫ x³/(exp(x)−1) dx. Nine times π⁴/15 is 3 π⁴/5, and U = A T⁴ differentiates to C_V = (12 π⁴/5) N k_B (T/θ_D)³. The energy prefactor 3 π⁴/5 is not the heat capacity. The phonon integral, the extension to infinity, and π⁴/15 are hypotheses",
1061
+ file: "DebyeHeat.lean",
1062
+ covers: "the mode integral ∫₀^{ω_D} 9 N ω²/ω_D³ dω = 3 N. The Debye energy with the integral extended to infinity is the hypothesis U = 9 N k_B T (T/θ_D)³ I, and I = π⁴/15 is a hypothesis, not an evaluation of ∫ x³/(exp(x)−1) dx. Nine times π⁴/15 is 3 π⁴/5, and U = A T⁴ differentiates to C_V = (12 π⁴/5) N k_B (T/θ_D)³. The energy prefactor 3 π⁴/5 is not the heat capacity. The phonon integral, the extension to infinity, and π⁴/15 are hypotheses",
778
1063
  coverage: "covers its statement only",
779
1064
  leanProof: "complete",
780
1065
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1066
+ nested: [],
781
1067
  },
782
1068
  {
783
1069
  key: "be-91",
784
1070
  bridgeId: "be-91",
1071
+ kind: "bridge",
785
1072
  theorem: "PhysJS.EinsteinSolid.einstein_heat",
786
- covers: "derivation-step: three Planck oscillators per atom, each of energy k_B θ_E/(exp(θ_E/T)−1), differentiate to C_V = 3 N k_B (θ_E/T)² exp(θ_E/T)/(exp(θ_E/T)−1)². The zero-point k_B θ_E/2 is constant. The kernel x² e^x/(e^x−1)² tends to 1 as x → 0⁺, so the high-temperature limit is 3 N k_B. One oscillator tends to N k_B. Three oscillators and the Einstein spectrum are hypotheses",
1073
+ file: "EinsteinSolid.lean",
1074
+ covers: "three Planck oscillators per atom, each of energy k_B θ_E/(exp(θ_E/T)−1), differentiate to C_V = 3 N k_B (θ_E/T)² exp(θ_E/T)/(exp(θ_E/T)−1)². The zero-point k_B θ_E/2 is constant. The kernel x² e^x/(e^x−1)² tends to 1 as x → 0⁺, so the high-temperature limit is 3 N k_B. One oscillator tends to N k_B. Three oscillators and the Einstein spectrum are hypotheses",
787
1075
  coverage: "covers its statement only",
788
1076
  leanProof: "complete",
789
1077
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1078
+ nested: [],
790
1079
  },
791
1080
  {
792
1081
  key: "be-92",
793
1082
  bridgeId: "be-92",
1083
+ kind: "bridge",
794
1084
  theorem: "PhysJS.SommerfeldHeat.electronic_heat",
795
- covers: "derivation-step: the Sommerfeld energy correction δU = (π²/6) (k_B T)² g(E_F) is a hypothesis, and its temperature derivative is c_V = (π²/3) k_B² T g(E_F). PhysJS.FermiSea.dos_factor is g(E_F) = (3/2) n/E_F for a √E density, so c_V = (π²/2) n k_B² T/E_F. A flat density g = n/E_F leaves π²/3. Not the Wiedemann–Franz law and not a second proof of be-61",
1085
+ file: "SommerfeldHeat.lean",
1086
+ covers: "the Sommerfeld energy correction δU = (π²/6) (k_B T)² g(E_F) is a hypothesis, and its temperature derivative is c_V = (π²/3) k_B² T g(E_F). PhysJS.FermiSea.dos_factor is g(E_F) = (3/2) n/E_F for a √E density, so c_V = (π²/2) n k_B² T/E_F. A flat density g = n/E_F leaves π²/3. Not the Wiedemann–Franz law and not a second proof of be-61",
796
1087
  coverage: "covers its statement only",
797
1088
  leanProof: "complete",
798
1089
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1090
+ nested: [],
799
1091
  },
800
1092
  {
801
1093
  key: "be-93",
802
1094
  bridgeId: "be-93",
1095
+ kind: "bridge",
803
1096
  theorem: "PhysJS.CurieWeiss.curie_weiss",
804
- covers: "derivation-step: linear response χ k_B T = μ₀ n (g μ_B)² ⟨S_z²⟩ with the high-temperature moment ⟨S_z²⟩ = S(S+1)/3 gives the Curie constant C = μ₀ n g² μ_B² S(S+1)/(3 k_B). Equal weights on m = ±1/2 give 1/4 = S(S+1)/3 at S = 1/2. Mean field B_eff = B + λ M with θ = C λ/μ₀ gives χ = C/(T−θ). θ = 0 is C/T. A classical moment uses μ²/3. The second moment and the mean-field shift are hypotheses. Not an su(2) derivation",
1097
+ file: "CurieWeiss.lean",
1098
+ covers: "linear response χ k_B T = μ₀ n (g μ_B)² ⟨S_z²⟩ with the high-temperature moment ⟨S_z²⟩ = S(S+1)/3 gives the Curie constant C = μ₀ n g² μ_B² S(S+1)/(3 k_B). Equal weights on m = ±1/2 give 1/4 = S(S+1)/3 at S = 1/2. Mean field B_eff = B + λ M with θ = C λ/μ₀ gives χ = C/(T−θ). θ = 0 is C/T. A classical moment uses μ²/3. The second moment and the mean-field shift are hypotheses. Not an su(2) derivation",
805
1099
  coverage: "covers its statement only",
806
1100
  leanProof: "complete",
807
1101
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1102
+ nested: [],
808
1103
  },
809
1104
  {
810
1105
  key: "be-94",
811
1106
  bridgeId: "be-94",
1107
+ kind: "bridge",
812
1108
  theorem: "PhysJS.PauliParamagnetism.pauli",
813
- covers: "derivation-step: the Zeeman imbalance M = μ_B² g(E_F) B is a hypothesis, and χ_P = μ₀ M/B is μ₀ μ_B² g(E_F). PhysJS.FermiSea.dos_factor supplies g(E_F) = (3/2) n/E_F, so χ_P = μ₀ μ_B² (3 n)/(2 E_F). A flat density leaves the factor 1. Not Landau diamagnetism",
1109
+ file: "PauliParamagnetism.lean",
1110
+ covers: "the Zeeman imbalance M = μ_B² g(E_F) B is a hypothesis, and χ_P = μ₀ M/B is μ₀ μ_B² g(E_F). PhysJS.FermiSea.dos_factor supplies g(E_F) = (3/2) n/E_F, so χ_P = μ₀ μ_B² (3 n)/(2 E_F). A flat density leaves the factor 1. Not Landau diamagnetism",
814
1111
  coverage: "covers its statement only",
815
1112
  leanProof: "complete",
816
1113
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1114
+ nested: [],
817
1115
  },
818
1116
  {
819
1117
  key: "be-95",
820
1118
  bridgeId: "be-95",
1119
+ kind: "bridge",
821
1120
  theorem: "PhysJS.GinzburgLandau.type_boundary",
822
- covers: "derivation-step: in the normalization with gradient coefficient 1/κ², quartic (1/2)(1−f²)², and field B², the density at κ² = 1/2 is (√2 f' − a f)² + (B + (1−f²)/√2)² minus √2 times the derivative of a(1−f²). Vanishing squares and equal endpoints make that wall integral zero. A trial profile with that critical integral has energy (1/κ² − 2) times the gradient integral: negative when κ > 1/√2, zero at κ = 1/√2, and positive when κ < 1/√2. The positive side is this trial, not every minimizer. The GL density and the profile are hypotheses",
1121
+ file: "GinzburgLandau.lean",
1122
+ covers: "in the normalization with gradient coefficient 1/κ², quartic (1/2)(1−f²)², and field B², the density at κ² = 1/2 is (√2 f' − a f)² + (B + (1−f²)/√2)² minus √2 times the derivative of a(1−f²). Vanishing squares and equal endpoints make that wall integral zero. A trial profile with that critical integral has energy (1/κ² − 2) times the gradient integral: negative when κ > 1/√2, zero at κ = 1/√2, and positive when κ < 1/√2. The positive side is this trial, not every minimizer. The GL density and the profile are hypotheses",
823
1123
  coverage: "covers its statement only",
824
1124
  leanProof: "complete",
825
1125
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1126
+ nested: [],
826
1127
  },
827
1128
  {
828
1129
  key: "be-96",
829
1130
  bridgeId: "be-96",
1131
+ kind: "bridge",
830
1132
  theorem: "PhysJS.UpperCritical.critical_field",
831
- covers: "derivation-step: the linearized GL instability sets the Landau-level ground energy ℏ q B/(2 m*) of charge q = 2e equal to |α| = ℏ²/(2 m* ξ²). That level is a hypothesis, not the spectrum of the covariant Laplacian. The field is B = ℏ/(2 e ξ²). With Φ₀ = h/(2e) and h = 2 π ℏ this is B_c2 = Φ₀/(2 π ξ²). Charge e instead of 2e is a different field",
1133
+ file: "UpperCritical.lean",
1134
+ covers: "the linearized GL instability sets the Landau-level ground energy ℏ q B/(2 m*) of charge q = 2e equal to |α| = ℏ²/(2 m* ξ²). That level is a hypothesis, not the spectrum of the covariant Laplacian. The field is B = ℏ/(2 e ξ²). With Φ₀ = h/(2e) and h = 2 π ℏ this is B_c2 = Φ₀/(2 π ξ²). Charge e instead of 2e is a different field",
832
1135
  coverage: "covers its statement only",
833
1136
  leanProof: "complete",
834
1137
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1138
+ nested: [],
835
1139
  },
836
1140
  {
837
1141
  key: "be-97",
838
1142
  bridgeId: "be-97",
1143
+ kind: "bridge",
839
1144
  theorem: "PhysJS.AmbegaokarBaratoff.ambegaokar_baratoff",
840
- covers: "derivation-step: the chain rule along E = Δ cosh t pulls the coherence-factor integrand back to sech t for t > 0. ∫₀^T sech = arctan(sinh T), and the limit T → ∞ is π/2. The tunnel Hamiltonian at zero temperature and identical gaps is the hypothesis that e I_c R_n is Δ times that improper integral, so I_c R_n = π Δ/(2 e). A coefficient other than π/2 fails. Not the finite-temperature tanh factor",
1145
+ file: "AmbegaokarBaratoff.lean",
1146
+ covers: "the chain rule along E = Δ cosh t pulls the coherence-factor integrand back to sech t for t > 0. ∫₀^T sech = arctan(sinh T), and the limit T → ∞ is π/2. The tunnel Hamiltonian at zero temperature and identical gaps is the hypothesis that e I_c R_n is Δ times that improper integral, so I_c R_n = π Δ/(2 e). A coefficient other than π/2 fails. Not the finite-temperature tanh factor",
841
1147
  coverage: "covers its statement only",
842
1148
  leanProof: "complete",
843
1149
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1150
+ nested: [],
844
1151
  },
845
1152
  {
846
1153
  key: "be-98",
847
1154
  bridgeId: "be-98",
1155
+ kind: "bridge",
848
1156
  theorem: "PhysJS.BcsJump.heat_jump",
849
- covers: "derivation-step: the weak-coupling excess free energy F = N(0) (T−T_c)/T_c · Δ² + 7 ζ N(0)/(16 π² T_c²) · Δ⁴ is a hypothesis, with k_B = 1. Its minimum is −α₀² (T−T_c)²/(4 β), and −T ∂²F/∂T² at T_c is ΔC = T_c α₀²/(2 β) = 8 π² N(0) T_c/(7 ζ). The normal heat capacity C_n = (2 π²/3) N(0) T_c is the both-spin Sommerfeld value, a hypothesis. The ratio is 12/(7 ζ). ζ is the quartic coefficient, not a series evaluation. One spin in C_n misses the ratio. Not 2π exp(−γ)",
1157
+ file: "BcsJump.lean",
1158
+ covers: "the weak-coupling excess free energy F = N(0) (T−T_c)/T_c · Δ² + 7 ζ N(0)/(16 π² T_c²) · Δ⁴ is a hypothesis, with k_B = 1. Its minimum is −α₀² (T−T_c)²/(4 β), and −T ∂²F/∂T² at T_c is ΔC = T_c α₀²/(2 β) = 8 π² N(0) T_c/(7 ζ). The normal heat capacity C_n = (2 π²/3) N(0) T_c is the both-spin Sommerfeld value, a hypothesis. The ratio is 12/(7 ζ). ζ is the quartic coefficient, not a series evaluation. One spin in C_n misses the ratio. Not 2π exp(−γ)",
850
1159
  coverage: "covers its statement only",
851
1160
  leanProof: "complete",
852
1161
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1162
+ nested: [],
853
1163
  },
854
1164
  {
855
1165
  key: "be-99",
856
1166
  bridgeId: "be-99",
1167
+ kind: "bridge",
857
1168
  theorem: "PhysJS.MassAction.mass_action",
858
- covers: "derivation-step: the Boltzmann tails n = N_c exp(−(E_c−μ)/(k_B T)) and p = N_v exp(−(μ−E_v)/(k_B T)), with E_g = E_c − E_v, multiply to N_c N_v exp(−E_g/(k_B T)). That product is the square of n_i = √(N_c N_v) exp(−E_g/(2 k_B T)). Dropping the 2 in the exponent is a different density. The tails are hypotheses. Not a Fermi–Dirac integral",
1169
+ file: "MassAction.lean",
1170
+ covers: "the Boltzmann tails n = N_c exp(−(E_c−μ)/(k_B T)) and p = N_v exp(−(μ−E_v)/(k_B T)), with E_g = E_c − E_v, multiply to N_c N_v exp(−E_g/(k_B T)). That product is the square of n_i = √(N_c N_v) exp(−E_g/(2 k_B T)). Dropping the 2 in the exponent is a different density. The tails are hypotheses. Not a Fermi–Dirac integral",
859
1171
  coverage: "covers its statement only",
860
1172
  leanProof: "complete",
861
1173
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1174
+ nested: [],
862
1175
  },
863
1176
  {
864
1177
  key: "be-100",
865
1178
  bridgeId: "be-100",
1179
+ kind: "bridge",
866
1180
  theorem: "PhysJS.LyddaneSachsTeller.lst",
867
- covers: "derivation-step: the undamped oscillator ε(ω) = ε(∞) + S/(ω_TO² − ω²) has a zero at ω_LO, which fixes S, and ε(0) is the same function at zero frequency. The ratio is ω_LO²/ω_TO² = ε(0)/ε(∞). The unsquared frequency ratio fails when ω_LO ≠ ω_TO. No damping is a hypothesis",
1181
+ file: "LyddaneSachsTeller.lean",
1182
+ covers: "the undamped oscillator ε(ω) = ε(∞) + S/(ω_TO² − ω²) has a zero at ω_LO, which fixes S, and ε(0) is the same function at zero frequency. The ratio is ω_LO²/ω_TO² = ε(0)/ε(∞). The unsquared frequency ratio fails when ω_LO ≠ ω_TO. No damping is a hypothesis",
868
1183
  coverage: "covers its statement only",
869
1184
  leanProof: "complete",
870
1185
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1186
+ nested: [],
871
1187
  },
872
1188
  {
873
1189
  key: "be-101",
874
1190
  bridgeId: "be-101",
1191
+ kind: "bridge",
875
1192
  theorem: "PhysJS.BktJump.bkt_jump",
876
- covers: "derivation-step: the phase gradient of a θ = φ vortex integrates to π J ln(R/a) between the core and radius R. The entropy hypothesis is the area of core positions, S = k_B ln((R/a)²) = 2 k_B ln(R/a). The free energy E − T S vanishes at a radius past the core only when k_B T = π J/2. Circumference entropy unbinds at π J. J is the stiffness in the vortex energy. Not the renormalization-group flow",
1193
+ file: "BktJump.lean",
1194
+ covers: "the phase gradient of a θ = φ vortex integrates to π J ln(R/a) between the core and radius R. The entropy hypothesis is the area of core positions, S = k_B ln((R/a)²) = 2 k_B ln(R/a). The free energy E − T S vanishes at a radius past the core only when k_B T = π J/2. Circumference entropy unbinds at π J. J is the stiffness in the vortex energy. Not the renormalization-group flow",
877
1195
  coverage: "covers its statement only",
878
1196
  leanProof: "complete",
879
1197
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1198
+ nested: [],
880
1199
  },
881
1200
  {
882
1201
  key: "be-102",
883
1202
  bridgeId: "be-102",
1203
+ kind: "bridge",
884
1204
  theorem: "PhysJS.LandauerConductance.conductance_eq",
885
- covers: "derivation-step: a one-dimensional mode of speed v in a length L has density of states L/(h v) per spin, and the flux times v/L cancels to 1/h. Current is spin · e · (Σ T_n) · (1/h) · Δμ with spin = 2 and Δμ = e V, so G = (2 e²/h) Σ T_n. One spin is e²/h. The transmissions and the bias window are hypotheses. Not the Hall conductance and not Landauer erasure",
1205
+ file: "LandauerConductance.lean",
1206
+ covers: "a one-dimensional mode of speed v in a length L has density of states L/(h v) per spin, and the flux times v/L cancels to 1/h. Current is spin · e · (Σ T_n) · (1/h) · Δμ with spin = 2 and Δμ = e V, so G = (2 e²/h) Σ T_n. One spin is e²/h. The transmissions and the bias window are hypotheses. Not the Hall conductance and not Landauer erasure",
886
1207
  coverage: "covers its statement only",
887
1208
  leanProof: "complete",
888
1209
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1210
+ nested: [],
889
1211
  },
890
1212
  {
891
1213
  key: "be-103",
892
1214
  bridgeId: "be-103",
1215
+ kind: "bridge",
893
1216
  theorem: "PhysJS.BohmSheath.cold_bohm_threshold",
894
- covers: "derivation-step: cold ions, with n_i(φ) = n0 / sqrt(1 − 2 e φ/(m u0²)) and Boltzmann electrons, have edge slopes whose ratio is at least 1 only when u0² ≥ k_B T_e / m_i. The sound-speed root is the non-negative one. γ_i = 3, from p ∝ n³, is the nested warmSound object and is not γ_i = 5/3. Not a kinetic sheath",
1217
+ file: "BohmSheath.lean",
1218
+ covers: "cold ions, with n_i(φ) = n0 / sqrt(1 − 2 e φ/(m u0²)) and Boltzmann electrons, have edge slopes whose ratio is at least 1 only when u0² ≥ k_B T_e / m_i. The sound-speed root is the non-negative one. γ_i = 3, from p ∝ n³, is the nested warmSound object and is not γ_i = 5/3. Not a kinetic sheath",
895
1219
  coverage: "covers its statement only",
896
1220
  leanProof: "complete",
897
1221
  axioms: ["propext", "Classical.choice", "Quot.sound"],
898
- warmSound: {
899
- theorem: "PhysJS.BohmSheath.warm_sound_eq",
900
- covers: "derivation-step: isothermal electrons and p ∝ n³ give c_s² = (k_B T_e + 3 k_B T_i)/m_i. γ_i = 5/3 is not that one-dimensional closure",
901
- coverage: "covers its statement only",
902
- leanProof: "complete",
903
- axioms: ["propext", "Classical.choice", "Quot.sound"],
904
- },
1222
+ nested: [
1223
+ {
1224
+ name: "warmSound",
1225
+ kind: "derivation-step",
1226
+ theorem: "PhysJS.BohmSheath.warm_sound_eq",
1227
+ file: "BohmSheath.lean",
1228
+ covers: "isothermal electrons and p ∝ n³ give c_s² = (k_B T_e + 3 k_B T_i)/m_i. γ_i = 5/3 is not that one-dimensional closure",
1229
+ coverage: "covers its statement only",
1230
+ leanProof: "complete",
1231
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
1232
+ },
1233
+ ],
905
1234
  },
906
1235
  {
907
1236
  key: "be-104",
908
1237
  bridgeId: "be-104",
1238
+ kind: "bridge",
909
1239
  theorem: "PhysJS.IonAcoustic.dispersion_eq",
910
- covers: "derivation-step: cold ions, continuity, ion momentum, and Poisson with Boltzmann electrons inside Poisson give ω² = k² c_s² / (1 + k² λ_De²), with c_s² = k_B T_e / m_i and λ_De² = ε0 k_B T_e / (n0 e²), for k ≠ 0. Warm ions and a kinetic dispersion are not this row",
1240
+ file: "IonAcoustic.lean",
1241
+ covers: "cold ions, continuity, ion momentum, and Poisson with Boltzmann electrons inside Poisson give ω² = k² c_s² / (1 + k² λ_De²), with c_s² = k_B T_e / m_i and λ_De² = ε0 k_B T_e / (n0 e²), for k ≠ 0. Warm ions and a kinetic dispersion are not this row",
911
1242
  coverage: "covers its statement only",
912
1243
  leanProof: "complete",
913
1244
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1245
+ nested: [],
914
1246
  },
915
1247
  {
916
1248
  key: "be-105",
917
1249
  bridgeId: "be-105",
1250
+ kind: "bridge",
918
1251
  theorem: "PhysJS.UpperHybrid.upper_hybrid_eq",
919
- covers: "derivation-step: cold electrons, B along z, and the ansatz Ex = E0 cos(ω t), vx = vx0 sin(ω t), vy = vy0 cos(ω t), with charge −e and ∂Ex/∂t = n e vx / ε0, give ω² = n e²/(ε0 m) + (e B/m)². Not a cyclotron monomial and not ω_pe alone",
1252
+ file: "UpperHybrid.lean",
1253
+ covers: "cold electrons, B along z, and the ansatz Ex = E0 cos(ω t), vx = vx0 sin(ω t), vy = vy0 cos(ω t), with charge −e and ∂Ex/∂t = n e vx / ε0, give ω² = n e²/(ε0 m) + (e B/m)². Not a cyclotron monomial and not ω_pe alone",
920
1254
  coverage: "covers its statement only",
921
1255
  leanProof: "complete",
922
1256
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1257
+ nested: [],
923
1258
  },
924
1259
  {
925
1260
  key: "be-106",
926
1261
  bridgeId: "be-106",
1262
+ kind: "bridge",
927
1263
  theorem: "PhysJS.ColdPlasmaCutoff.cutoff_R",
928
- covers: "derivation-step: the cold Stix index n_R² = 1 − ω_p²/(ω(ω − ω_c)) is a hypothesis. Vanishing n is ω(ω − ω_c) = ω_p². For ω_c ≥ 0 the nonnegative root is ω_R = (ω_c + sqrt(ω_c² + 4 ω_p²))/2. The L root and the whistler limit are nested. The Stix dielectric is not re-derived",
929
- coverage: "covers its statement only",
930
- leanProof: "complete",
931
- axioms: ["propext", "Classical.choice", "Quot.sound"],
932
- cutoffL: {
933
- theorem: "PhysJS.ColdPlasmaCutoff.cutoff_L",
934
- covers: "derivation-step: n_L² = 1 − ω_p²/(ω(ω + ω_c)) is a hypothesis. For ω_c ≥ 0 the nonnegative root of ω(ω + ω_c) = ω_p² is ω_L = (−ω_c + sqrt(ω_c² + 4 ω_p²))/2",
935
- coverage: "covers its statement only",
936
- leanProof: "complete",
937
- axioms: ["propext", "Classical.choice", "Quot.sound"],
938
- },
939
- whistlerLimit: {
940
- theorem: "PhysJS.ColdPlasmaCutoff.whistler_limit",
941
- covers: "derivation-step: dropping the leading 1 and replacing ω_c − ω by ω_c are hypotheses, leaving n² = ω_p²/(ω ω_c). With n = c k/ω and d_e = c/ω_p this is ω = ω_c (k d_e)²",
942
- coverage: "covers its statement only",
943
- leanProof: "complete",
944
- axioms: ["propext", "Classical.choice", "Quot.sound"],
945
- },
1264
+ file: "ColdPlasmaCutoff.lean",
1265
+ covers: "the cold Stix index n_R² = 1 − ω_p²/(ω(ω − ω_c)) is a hypothesis. Vanishing n is ω(ω − ω_c) = ω_p². For ω_c ≥ 0 the nonnegative root is ω_R = (ω_c + sqrt(ω_c² + 4 ω_p²))/2. The L root and the whistler limit are nested. The Stix dielectric is not re-derived",
1266
+ coverage: "covers its statement only",
1267
+ leanProof: "complete",
1268
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
1269
+ nested: [
1270
+ {
1271
+ name: "cutoffL",
1272
+ kind: "derivation-step",
1273
+ theorem: "PhysJS.ColdPlasmaCutoff.cutoff_L",
1274
+ file: "ColdPlasmaCutoff.lean",
1275
+ covers: "n_L² = 1 − ω_p²/(ω(ω + ω_c)) is a hypothesis. For ω_c ≥ 0 the nonnegative root of ω(ω + ω_c) = ω_p² is ω_L = (−ω_c + sqrt(ω_c² + 4 ω_p²))/2",
1276
+ coverage: "covers its statement only",
1277
+ leanProof: "complete",
1278
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
1279
+ },
1280
+ {
1281
+ name: "whistlerLimit",
1282
+ kind: "derivation-step",
1283
+ theorem: "PhysJS.ColdPlasmaCutoff.whistler_limit",
1284
+ file: "ColdPlasmaCutoff.lean",
1285
+ covers: "dropping the leading 1 and replacing ω_c − ω by ω_c are hypotheses, leaving n² = ω_p²/(ω ω_c). With n = c k/ω and d_e = c/ω_p this is ω = ω_c (k d_e)²",
1286
+ coverage: "covers its statement only",
1287
+ leanProof: "complete",
1288
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
1289
+ },
1290
+ ],
946
1291
  },
947
1292
  {
948
1293
  key: "be-107",
949
1294
  bridgeId: "be-107",
1295
+ kind: "bridge",
950
1296
  theorem: "PhysJS.LowerHybrid.lower_hybrid_eq",
951
- covers: "derivation-step: cold singly charged fluids satisfy ω_pe²/ω_ce² = ω_pi²/(ω_ci ω_ce). The ordered balance 1 + ω_pi²/(ω_ci ω_ce) = ω_pi²/ω² is a hypothesis and gives ω² = 1/(1/ω_pi² + 1/(ω_ci ω_ce)). Dropping the leading 1 is a separate hypothesis and leaves ω² = ω_ci ω_ce. Not a cyclotron monomial",
1297
+ file: "LowerHybrid.lean",
1298
+ covers: "cold singly charged fluids satisfy ω_pe²/ω_ce² = ω_pi²/(ω_ci ω_ce). The ordered balance 1 + ω_pi²/(ω_ci ω_ce) = ω_pi²/ω² is a hypothesis and gives ω² = 1/(1/ω_pi² + 1/(ω_ci ω_ce)). Dropping the leading 1 is a separate hypothesis and leaves ω² = ω_ci ω_ce. Not a cyclotron monomial",
952
1299
  coverage: "covers its statement only",
953
1300
  leanProof: "complete",
954
1301
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1302
+ nested: [],
955
1303
  },
956
1304
  {
957
1305
  key: "be-108",
958
1306
  bridgeId: "be-108",
1307
+ kind: "bridge",
959
1308
  theorem: "PhysJS.ObliqueMagnetosonic.phase_speed_eq",
960
- covers: "derivation-step: the be-69 quartic with k_∥ = k cos θ is a hypothesis. The phase-speed squares are ½[c_s² + v_A² ± sqrt((c_s² + v_A²)² − 4 c_s² v_A² cos²θ)] for c_s², v_A² ≥ 0. At θ = π/2 the fast root is c_s² + v_A² and the slow root is 0, the perpendicular values and not a second proof of that polarization. At θ = 0 the roots are the larger and smaller of c_s² and v_A²",
1309
+ file: "ObliqueMagnetosonic.lean",
1310
+ covers: "the be-69 quartic with k_∥ = k cos θ is a hypothesis. The phase-speed squares are ½[c_s² + v_A² ± sqrt((c_s² + v_A²)² − 4 c_s² v_A² cos²θ)] for c_s², v_A² ≥ 0. At θ = π/2 the fast root is c_s² + v_A² and the slow root is 0, the perpendicular values and not a second proof of that polarization. At θ = 0 the roots are the larger and smaller of c_s² and v_A²",
961
1311
  coverage: "covers its statement only",
962
1312
  leanProof: "complete",
963
1313
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1314
+ nested: [],
964
1315
  },
965
1316
  {
966
1317
  key: "be-109",
967
1318
  bridgeId: "be-109",
1319
+ kind: "bridge",
968
1320
  theorem: "PhysJS.BennettPinch.bennett_eq",
969
- covers: "derivation-step: a steady z-pinch with B = μ0 I/(2 π r), dI/dr = 2 π r j, and dp/dr = −j B cancels off the axis in d/dr[π r² p + μ0 I²/(8 π)]. Differentiability through the axis is a hypothesis. With I(0) = 0 and p(R) = 0 the fundamental theorem gives μ0 I(R)²/(8 π) = ∫₀^R 2 π r p dr. Equal temperatures are the nested equalTemperature object. The single-population current uses ∫ p dA = N k_B T and is not that hydrogenic current",
1321
+ file: "BennettPinch.lean",
1322
+ covers: "a steady z-pinch with B = μ0 I/(2 π r), dI/dr = 2 π r j, and dp/dr = −j B cancels off the axis in d/dr[π r² p + μ0 I²/(8 π)]. Differentiability through the axis is a hypothesis. With I(0) = 0 and p(R) = 0 the fundamental theorem gives μ0 I(R)²/(8 π) = ∫₀^R 2 π r p dr. Equal temperatures are the nested equalTemperature object. The single-population current uses ∫ p dA = N k_B T and is not that hydrogenic current",
970
1323
  coverage: "covers its statement only",
971
1324
  leanProof: "complete",
972
1325
  axioms: ["propext", "Classical.choice", "Quot.sound"],
973
- equalTemperature: {
974
- theorem: "PhysJS.BennettPinch.equal_temperature_current",
975
- covers: "derivation-step: N_e = N_i = N and T_e = T_i = T read the Bennett integral as 2 N k_B T, so I = sqrt(16 π N k_B T / μ0) for I ≥ 0. The factor 8 is the single-population current",
976
- coverage: "covers its statement only",
977
- leanProof: "complete",
978
- axioms: ["propext", "Classical.choice", "Quot.sound"],
979
- },
1326
+ nested: [
1327
+ {
1328
+ name: "equalTemperature",
1329
+ kind: "derivation-step",
1330
+ theorem: "PhysJS.BennettPinch.equal_temperature_current",
1331
+ file: "BennettPinch.lean",
1332
+ covers: "N_e = N_i = N and T_e = T_i = T read the Bennett integral as 2 N k_B T, so I = sqrt(16 π N k_B T / μ0) for I ≥ 0. The factor 8 is the single-population current",
1333
+ coverage: "covers its statement only",
1334
+ leanProof: "complete",
1335
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
1336
+ },
1337
+ ],
980
1338
  },
981
1339
  {
982
1340
  key: "be-110",
983
1341
  bridgeId: "be-110",
1342
+ kind: "bridge",
984
1343
  theorem: "PhysJS.LossCone.loss_cone_eq",
985
- covers: "derivation-step: μ = m v_⊥²/(2 B) and the kinetic energy are constant along a field line. Parallel speed vanishes at the mirror, so sin² θ_lc = B0/Bm = 1/R_m with R_m = Bm/B0. Pitch-angle scattering is not this statement",
1344
+ file: "LossCone.lean",
1345
+ covers: "μ = m v_⊥²/(2 B) and the kinetic energy are constant along a field line. Parallel speed vanishes at the mirror, so sin² θ_lc = B0/Bm = 1/R_m with R_m = Bm/B0. Pitch-angle scattering is not this statement",
986
1346
  coverage: "covers its statement only",
987
1347
  leanProof: "complete",
988
1348
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1349
+ nested: [],
989
1350
  },
990
1351
  {
991
1352
  key: "be-111",
992
1353
  bridgeId: "be-111",
1354
+ kind: "bridge",
993
1355
  theorem: "PhysJS.GradBDrift.drift_magnitude",
994
- covers: "derivation-step: μ = m v_⊥²/(2 B) and the grad-B speed μ |∇B|/(q B) give m v_⊥² |∇B|/(2 q B²). Vacuum low-β curvature uses κ = |∇B|/B, so the curvature speed is m v_∥² |∇B|/(q B²) and the sum is m (v_∥² + v_⊥²/2) |∇B|/(q B²). High-β curvature, where κ ≠ |∇B|/B, is a different vector for m ≠ 0. q is the signed charge",
1356
+ file: "GradBDrift.lean",
1357
+ covers: "μ = m v_⊥²/(2 B) and the grad-B speed μ |∇B|/(q B) give m v_⊥² |∇B|/(2 q B²). Vacuum low-β curvature uses κ = |∇B|/B, so the curvature speed is m v_∥² |∇B|/(q B²) and the sum is m (v_∥² + v_⊥²/2) |∇B|/(q B²). High-β curvature, where κ ≠ |∇B|/B, is a different vector for m ≠ 0. q is the signed charge",
995
1358
  coverage: "covers its statement only",
996
1359
  leanProof: "complete",
997
1360
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1361
+ nested: [],
998
1362
  },
999
1363
  {
1000
1364
  key: "be-112",
1001
1365
  bridgeId: "be-112",
1366
+ kind: "bridge",
1002
1367
  theorem: "PhysJS.ExBDrift.drift_eq",
1003
- covers: "derivation-step: steady q E + q v × B = 0 with B along z gives v_x = E_y/B and v_y = −E_x/B for q ≠ 0 and B ≠ 0. The opposite charge has the same solution. Not a finite-Larmor-radius drift",
1368
+ file: "ExBDrift.lean",
1369
+ covers: "steady q E + q v × B = 0 with B along z gives v_x = E_y/B and v_y = −E_x/B for q ≠ 0 and B ≠ 0. The opposite charge has the same solution. Not a finite-Larmor-radius drift",
1004
1370
  coverage: "covers its statement only",
1005
1371
  leanProof: "complete",
1006
1372
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1373
+ nested: [],
1007
1374
  },
1008
1375
  {
1009
1376
  key: "be-113",
1010
1377
  bridgeId: "be-113",
1378
+ kind: "bridge",
1011
1379
  theorem: "PhysJS.LandauDamping.damping_eq",
1012
- covers: "derivation-step: the Maxwellian f = n/(v_t sqrt(2π)) exp(−v²/(2 v_t²)) has slope −(v/v_t²) f. The residue formula γ = (π ω³/(2 n k²)) (∂f/∂v)|_{ω/k} is a hypothesis, not a contour integral, and gives γ = −sqrt(π/8) ω (ω/(k v_t))³ exp(−ω²/(2 k² v_t²)). Bohm–Gross is the nested bohmGross object and does not replace ω by ω_p in this prefactor",
1380
+ file: "LandauDamping.lean",
1381
+ covers: "the Maxwellian f = n/(v_t sqrt(2π)) exp(−v²/(2 v_t²)) has slope −(v/v_t²) f. The residue formula γ = (π ω³/(2 n k²)) (∂f/∂v)|_{ω/k} is a hypothesis, not a contour integral, and gives γ = −sqrt(π/8) ω (ω/(k v_t))³ exp(−ω²/(2 k² v_t²)). Bohm–Gross is the nested bohmGross object and does not replace ω by ω_p in this prefactor",
1013
1382
  coverage: "covers its statement only",
1014
1383
  leanProof: "complete",
1015
1384
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1016
- bohmGross: {
1017
- theorem: "PhysJS.LandauDamping.bohm_gross_exponent",
1018
- covers: "derivation-step: ω² = ω_p² (1 + 3 k² λ_D²) and λ_D² = v_t²/ω_p² give ω²/(2 k² v_t²) = 3/2 + 1/(2 k² λ_D²). This does not set ω = ω_p",
1019
- coverage: "covers its statement only",
1020
- leanProof: "complete",
1021
- axioms: ["propext", "Classical.choice", "Quot.sound"],
1022
- },
1385
+ nested: [
1386
+ {
1387
+ name: "bohmGross",
1388
+ kind: "derivation-step",
1389
+ theorem: "PhysJS.LandauDamping.bohm_gross_exponent",
1390
+ file: "LandauDamping.lean",
1391
+ covers: "ω² = ω_p² (1 + 3 k² λ_D²) and λ_D² = v_t²/ω_p² give ω²/(2 k² v_t²) = 3/2 + 1/(2 k² λ_D²). This does not set ω = ω_p",
1392
+ coverage: "covers its statement only",
1393
+ leanProof: "complete",
1394
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
1395
+ },
1396
+ ],
1023
1397
  },
1024
1398
  {
1025
1399
  key: "be-114",
1026
1400
  bridgeId: "be-114",
1401
+ kind: "bridge",
1027
1402
  theorem: "PhysJS.DebyeSphere.coulomb_argument",
1028
- covers: "derivation-step: N_D = (4π/3) n λ_D³. The Rutherford b_90 = e²/(4π ε0 μ v_rel²), at (1/2) μ v_rel² = (3/2) k_B T, is e²/(12 π ε0 k_B T). Then Λ = λ_D/b_90 = 12 π n λ_D³ = 9 N_D. The one-species Debye length is an input. The angular integral and ln Λ are not evaluated",
1403
+ file: "DebyeSphere.lean",
1404
+ covers: "N_D = (4π/3) n λ_D³. The Rutherford b_90 = e²/(4π ε0 μ v_rel²), at (1/2) μ v_rel² = (3/2) k_B T, is e²/(12 π ε0 k_B T). Then Λ = λ_D/b_90 = 12 π n λ_D³ = 9 N_D. The one-species Debye length is an input. The angular integral and ln Λ are not evaluated",
1029
1405
  coverage: "covers its statement only",
1030
1406
  leanProof: "complete",
1031
1407
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1408
+ nested: [],
1032
1409
  },
1033
1410
  {
1034
1411
  key: "be-115",
1035
1412
  bridgeId: "be-115",
1413
+ kind: "bridge",
1036
1414
  theorem: "PhysJS.MultiDebye.debye_two",
1037
- covers: "derivation-step: two linearized Boltzmann responses and Poisson give 1/λ_D² = 1/λ₁² + 1/λ₂², with λ_s² = ε0 k_B T_s/(n_s q_s²). Dropping a responding species leaves a different length. The one-species length is not restated",
1415
+ file: "MultiDebye.lean",
1416
+ covers: "two linearized Boltzmann responses and Poisson give 1/λ_D² = 1/λ₁² + 1/λ₂², with λ_s² = ε0 k_B T_s/(n_s q_s²). Dropping a responding species leaves a different length. The one-species length is not restated",
1038
1417
  coverage: "covers its statement only",
1039
1418
  leanProof: "complete",
1040
1419
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1420
+ nested: [],
1041
1421
  },
1042
1422
  {
1043
1423
  key: "be-116",
1044
1424
  bridgeId: "be-116",
1425
+ kind: "bridge",
1045
1426
  theorem: "PhysJS.LorentzResistivity.resistivity_eq",
1046
- covers: "derivation-step: σ_tr = 4π b0² ln Λ is a hypothesis, with b0 = Z e²/(4π ε0 m v²). At v_T² = 2 k_B T/m, ν(v_T) = n_i Z² e⁴ ln Λ √2 / (16 π ε0² √m (k_B T √(k_B T))). The conductivity moment σ = (8/√π) n_e e²/(m ν(v_T)) is a hypothesis, not the Gaussian integral. With n_e = Z n_i it gives η = (π √(2π)/8) Z e² √m ln Λ / ((4π ε0)² (k_B T √(k_B T))). The typed reference closure is nested. The Spitzer–Härm factor 0.51 is not this row",
1427
+ file: "LorentzResistivity.lean",
1428
+ covers: "σ_tr = 4π b0² ln Λ is a hypothesis, with b0 = Z e²/(4π ε0 m v²). At v_T² = 2 k_B T/m, ν(v_T) = n_i Z² e⁴ ln Λ √2 / (16 π ε0² √m (k_B T √(k_B T))). The conductivity moment σ = (8/√π) n_e e²/(m ν(v_T)) is a hypothesis, not the Gaussian integral. With n_e = Z n_i it gives η = (π √(2π)/8) Z e² √m ln Λ / ((4π ε0)² (k_B T √(k_B T))). The typed reference closure is nested. The Spitzer–Härm factor 0.51 is not this row",
1047
1429
  coverage: "covers its statement only",
1048
1430
  leanProof: "complete",
1049
1431
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1050
- referenceResistivity: {
1051
- theorem: "PhysJS.LorentzResistivity.reference_resistivity",
1052
- covers: "derivation-step: the conventional link 1/τ_e = (4/(3 √π)) ν(v_T), not a derived moment, and η = m/(n_e e² τ) give η_ref = (4 √(2π)/3) times the same monomial. On one ν, η_ref = (32/(3π)) η_kin",
1053
- coverage: "covers its statement only",
1054
- leanProof: "complete",
1055
- axioms: ["propext", "Classical.choice", "Quot.sound"],
1056
- },
1432
+ nested: [
1433
+ {
1434
+ name: "referenceResistivity",
1435
+ kind: "derivation-step",
1436
+ theorem: "PhysJS.LorentzResistivity.reference_resistivity",
1437
+ file: "LorentzResistivity.lean",
1438
+ covers: "the conventional link 1/τ_e = (4/(3 √π)) ν(v_T), not a derived moment, and η = m/(n_e e² τ) give η_ref = (4 √(2π)/3) times the same monomial. On one ν, η_ref = (32/(3π)) η_kin",
1439
+ coverage: "covers its statement only",
1440
+ leanProof: "complete",
1441
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
1442
+ },
1443
+ ],
1057
1444
  },
1058
1445
  {
1059
1446
  key: "be-117",
1060
1447
  bridgeId: "be-117",
1448
+ kind: "bridge",
1061
1449
  theorem: "PhysJS.ResistiveSlab.decay_time",
1062
- covers: "derivation-step: η_m = 1/(μ0 σ) and ∂B/∂t = η_m ∂²B/∂x² are hypotheses. The slab mode B0 sin(π x/L) exp(−t/τ) decays at τ = μ0 σ L²/π². A denominator 4π is not π². Rm and the Lundquist number are the nested lundquist object. Not the Reynolds analogy",
1450
+ file: "ResistiveSlab.lean",
1451
+ covers: "η_m = 1/(μ0 σ) and ∂B/∂t = η_m ∂²B/∂x² are hypotheses. The slab mode B0 sin(π x/L) exp(−t/τ) decays at τ = μ0 σ L²/π². A denominator 4π is not π². Rm and the Lundquist number are the nested lundquist object. Not the Reynolds analogy",
1063
1452
  coverage: "covers its statement only",
1064
1453
  leanProof: "complete",
1065
1454
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1066
- lundquist: {
1067
- theorem: "PhysJS.ResistiveSlab.lundquist_ratio",
1068
- covers: "derivation-step: Rm = μ0 σ v L and S = μ0 σ v_A L give S/Rm = v_A/v when v ≠ 0",
1069
- coverage: "covers its statement only",
1070
- leanProof: "complete",
1071
- axioms: ["propext", "Classical.choice", "Quot.sound"],
1072
- },
1455
+ nested: [
1456
+ {
1457
+ name: "lundquist",
1458
+ kind: "derivation-step",
1459
+ theorem: "PhysJS.ResistiveSlab.lundquist_ratio",
1460
+ file: "ResistiveSlab.lean",
1461
+ covers: "Rm = μ0 σ v L and S = μ0 σ v_A L give S/Rm = v_A/v when v ≠ 0",
1462
+ coverage: "covers its statement only",
1463
+ leanProof: "complete",
1464
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
1465
+ },
1466
+ ],
1073
1467
  },
1074
1468
  {
1075
1469
  key: "be-118",
1076
1470
  bridgeId: "be-118",
1471
+ kind: "bridge",
1077
1472
  theorem: "PhysJS.ParkerCritical.critical_radius",
1078
- covers: "derivation-step: an isothermal spherical wind factors as (v − c_s²/v) dv = (2 c_s²/r − G M/r²) dr. The critical point is both factors vanishing: v² = c_s² and r_c = G M/(2 c_s²). The 2 is spherical divergence. A vanishing coefficient alone does not force the geometric side to vanish",
1473
+ file: "ParkerCritical.lean",
1474
+ covers: "an isothermal spherical wind factors as (v − c_s²/v) dv = (2 c_s²/r − G M/r²) dr. The critical point is both factors vanishing: v² = c_s² and r_c = G M/(2 c_s²). The 2 is spherical divergence. A vanishing coefficient alone does not force the geometric side to vanish",
1079
1475
  coverage: "covers its statement only",
1080
1476
  leanProof: "complete",
1081
1477
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1478
+ nested: [],
1082
1479
  },
1083
1480
  {
1084
1481
  key: "be-119",
1085
1482
  bridgeId: "be-119",
1483
+ kind: "bridge",
1086
1484
  theorem: "PhysJS.ParkerSpiral.spiral_ratio",
1087
- covers: "derivation-step: B_φ/B_r = r sinθ dφ/dr and the frozen-in angle dφ/dr = −Ω/v_r give B_φ/B_r = −Ω r sinθ/v_r. sinθ is a real parameter. Dropping the sign is a different spiral",
1485
+ file: "ParkerSpiral.lean",
1486
+ covers: "B_φ/B_r = r sinθ dφ/dr and the frozen-in angle dφ/dr = −Ω/v_r give B_φ/B_r = −Ω r sinθ/v_r. sinθ is a real parameter. Dropping the sign is a different spiral",
1088
1487
  coverage: "covers its statement only",
1089
1488
  leanProof: "complete",
1090
1489
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1490
+ nested: [],
1091
1491
  },
1092
1492
  {
1093
1493
  key: "be-120",
1094
1494
  bridgeId: "be-120",
1495
+ kind: "bridge",
1095
1496
  theorem: "PhysJS.ChapmanFerraro.standoff_eq",
1096
- covers: "derivation-step: a doubled dipole B_mp = 2 B_E (R_E/r)³ is a hypothesis. Ram balance ρ v² = B_mp²/(2 μ0) at K = 1 gives (R/R_E)⁶ = 2 B_E²/(μ0 ρ v²). Specular 2 ρ v² replaces the numerator 2 by 1. Magnetic pressure is an input, not a proof of be-74",
1497
+ file: "ChapmanFerraro.lean",
1498
+ covers: "a doubled dipole B_mp = 2 B_E (R_E/r)³ is a hypothesis. Ram balance ρ v² = B_mp²/(2 μ0) at K = 1 gives (R/R_E)⁶ = 2 B_E²/(μ0 ρ v²). Specular 2 ρ v² replaces the numerator 2 by 1. Magnetic pressure is an input, not a proof of be-74",
1097
1499
  coverage: "covers its statement only",
1098
1500
  leanProof: "complete",
1099
1501
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1502
+ nested: [],
1100
1503
  },
1101
1504
  {
1102
1505
  key: "be-121",
1103
1506
  bridgeId: "be-121",
1507
+ kind: "bridge",
1104
1508
  theorem: "PhysJS.LawsonBreakeven.breakeven_eq",
1105
- covers: "derivation-step: a 50–50 Maxwellian DT mix, with bremsstrahlung neglected, has fusion power (n² ⟨σv⟩/4) E and thermal power 3 n k_B T/τ. Breakeven gives n τ = 12 k_B T/(⟨σv⟩ E). The 12 is 4 × 3, not either factor alone. The Maxwellian average is not computed, and this is not an evaluated triple product",
1509
+ file: "LawsonBreakeven.lean",
1510
+ covers: "a 50–50 Maxwellian DT mix, with bremsstrahlung neglected, has fusion power (n² ⟨σv⟩/4) E and thermal power 3 n k_B T/τ. Breakeven gives n τ = 12 k_B T/(⟨σv⟩ E). The 12 is 4 × 3, not either factor alone. The Maxwellian average is not computed, and this is not an evaluated triple product",
1106
1511
  coverage: "covers its statement only",
1107
1512
  leanProof: "complete",
1108
1513
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1514
+ nested: [],
1109
1515
  },
1110
1516
  {
1111
1517
  key: "be-122",
1112
1518
  bridgeId: "be-122",
1519
+ kind: "bridge",
1113
1520
  theorem: "PhysJS.LangmuirProbe.floating_potential",
1114
- covers: "derivation-step: Γ_e = n0 exp(e Φ/(k_B T)) sqrt(k_B T/(2 π m_e)). Equating it to the Bohm ion flux gives e Φ/(k_B T) = (1/2) ln(2 π m_e/m_i) − 1/2. The ion flux is the nested bohmFlux object. Not Child–Langmuir",
1521
+ file: "LangmuirProbe.lean",
1522
+ covers: "Γ_e = n0 exp(e Φ/(k_B T)) sqrt(k_B T/(2 π m_e)). Equating it to the Bohm ion flux gives e Φ/(k_B T) = (1/2) ln(2 π m_e/m_i) − 1/2. The ion flux is the nested bohmFlux object. Not Child–Langmuir",
1115
1523
  coverage: "covers its statement only",
1116
1524
  leanProof: "complete",
1117
1525
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1118
- bohmFlux: {
1119
- theorem: "PhysJS.LangmuirProbe.bohm_flux",
1120
- covers: "derivation-step: a presheath drop e Δφ = k_B T_e/2 multiplies the cold Bohm flux by exp(−1/2), so Γ_i = n0 exp(−1/2) sqrt(k_B T_e/m_i)",
1121
- coverage: "covers its statement only",
1122
- leanProof: "complete",
1123
- axioms: ["propext", "Classical.choice", "Quot.sound"],
1124
- },
1526
+ nested: [
1527
+ {
1528
+ name: "bohmFlux",
1529
+ kind: "derivation-step",
1530
+ theorem: "PhysJS.LangmuirProbe.bohm_flux",
1531
+ file: "LangmuirProbe.lean",
1532
+ covers: "a presheath drop e Δφ = k_B T_e/2 multiplies the cold Bohm flux by exp(−1/2), so Γ_i = n0 exp(−1/2) sqrt(k_B T_e/m_i)",
1533
+ coverage: "covers its statement only",
1534
+ leanProof: "complete",
1535
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
1536
+ },
1537
+ ],
1125
1538
  },
1126
1539
  {
1127
1540
  key: "be-123",
1128
1541
  bridgeId: "be-123",
1542
+ kind: "bridge",
1129
1543
  theorem: "PhysJS.CrossFieldDiffusion.diffusion_ratio",
1130
- covers: "derivation-step: q E + q v × B − m v/τ = 0, with μ = q τ/m and α = μ B, solves to v_x = μ (E_x + α E_y)/(1+α²) and v_y = μ (E_y − α E_x)/(1+α²). Einstein's relation D = μ k_B T/q on μ and on μ/(1+α²), the same relation as be-70 and not re-proved here, gives D_⊥/D_∥ = 1/(1+ω_c² τ²) for E along x. The ratio is even in the sign of ω_c. Bohm's 1/16 equals this ratio only when α² = 15",
1544
+ file: "CrossFieldDiffusion.lean",
1545
+ covers: "q E + q v × B − m v/τ = 0, with μ = q τ/m and α = μ B, solves to v_x = μ (E_x + α E_y)/(1+α²) and v_y = μ (E_y − α E_x)/(1+α²). Einstein's relation D = μ k_B T/q on μ and on μ/(1+α²), the same relation as be-70 and not re-proved here, gives D_⊥/D_∥ = 1/(1+ω_c² τ²) for E along x. The ratio is even in the sign of ω_c. Bohm's 1/16 equals this ratio only when α² = 15",
1131
1546
  coverage: "covers its statement only",
1132
1547
  leanProof: "complete",
1133
1548
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1549
+ nested: [],
1134
1550
  },
1135
1551
  {
1136
1552
  key: "be-124",
1137
1553
  bridgeId: "be-124",
1554
+ kind: "bridge",
1138
1555
  theorem: "PhysJS.Firehose.firehose_threshold",
1139
- covers: "derivation-step: the CGL root ω² = (k_∥²/ρ) (B²/μ0 + p_⊥ − p_∥) is a hypothesis. It is negative iff p_∥ − p_⊥ > B²/μ0. With β = 2 μ0 p/B², the be-76 definition and not the solenoid hypotheses of beta_eq, the threshold is β_∥ − β_⊥ > 2. The CGL closure is not derived. be-76 does not prove this inequality",
1556
+ file: "Firehose.lean",
1557
+ covers: "the CGL root ω² = (k_∥²/ρ) (B²/μ0 + p_⊥ − p_∥) is a hypothesis. It is negative iff p_∥ − p_⊥ > B²/μ0. With β = 2 μ0 p/B², the be-76 definition and not the solenoid hypotheses of beta_eq, the threshold is β_∥ − β_⊥ > 2. The CGL closure is not derived. be-76 does not prove this inequality",
1140
1558
  coverage: "covers its statement only",
1141
1559
  leanProof: "complete",
1142
1560
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1561
+ nested: [],
1143
1562
  },
1144
1563
  {
1145
1564
  key: "be-125",
1146
1565
  bridgeId: "be-125",
1566
+ kind: "bridge",
1147
1567
  theorem: "PhysJS.MirrorInstability.mirror_threshold",
1148
- covers: "derivation-step: the mirror threshold β_⊥ (T_⊥/T_∥ − 1) > 1 is a hypothesis, equivalent to T_⊥/T_∥ − 1 > 1/β_⊥, with β = 2 μ0 p/B². A beta that omits the 2 replaces 1/β by 2/β. The temperature ratio is not the temperature difference. The kinetic integral is not evaluated. Not the loss cone and not a proof of be-76",
1568
+ file: "MirrorInstability.lean",
1569
+ covers: "the mirror threshold β_⊥ (T_⊥/T_∥ − 1) > 1 is a hypothesis, equivalent to T_⊥/T_∥ − 1 > 1/β_⊥, with β = 2 μ0 p/B². A beta that omits the 2 replaces 1/β by 2/β. The temperature ratio is not the temperature difference. The kinetic integral is not evaluated. Not the loss cone and not a proof of be-76",
1149
1570
  coverage: "covers its statement only",
1150
1571
  leanProof: "complete",
1151
1572
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1573
+ nested: [],
1152
1574
  },
1153
1575
  {
1154
1576
  key: "be-126",
1155
1577
  bridgeId: "be-126",
1578
+ kind: "bridge",
1156
1579
  theorem: "PhysJS.CombDrive.force_eq",
1157
- covers: "derivation-step: both sidewalls give C = 2 n ε h x / g. Voltage-controlled coenergy (1/2) C V² has lateral force (1/2) V² dC/dx, so the sidewall 2 and the coenergy 1/2 cancel and F = n ε h V² / g. One sidewall leaves the 1/2. Not the normal pull-in of be-79",
1580
+ file: "CombDrive.lean",
1581
+ covers: "both sidewalls give C = 2 n ε h x / g. Voltage-controlled coenergy (1/2) C V² has lateral force (1/2) V² dC/dx, so the sidewall 2 and the coenergy 1/2 cancel and F = n ε h V² / g. One sidewall leaves the 1/2. Not the normal pull-in of be-79",
1158
1582
  coverage: "covers its statement only",
1159
1583
  leanProof: "complete",
1160
1584
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1585
+ nested: [],
1161
1586
  },
1162
1587
  {
1163
1588
  key: "be-127",
1164
1589
  bridgeId: "be-127",
1590
+ kind: "bridge",
1165
1591
  theorem: "PhysJS.SubthresholdSwing.swing_eq",
1166
- covers: "derivation-step: ln(I2/I1) = e (ψ2 − ψ1)/(k_B T) and the capacitive divider ψ2 − ψ1 = C_ox/(C_ox + C_d) (Vg2 − Vg1). One decade, I2/I1 = 10, gives S = ln(10) (k_B T/e) (1 + C_d/C_ox). Dropping C_d is not the swing when C_d ≠ 0. Not the ideal diode of be-82",
1592
+ file: "SubthresholdSwing.lean",
1593
+ covers: "ln(I2/I1) = e (ψ2 − ψ1)/(k_B T) and the capacitive divider ψ2 − ψ1 = C_ox/(C_ox + C_d) (Vg2 − Vg1). One decade, I2/I1 = 10, gives S = ln(10) (k_B T/e) (1 + C_d/C_ox). Dropping C_d is not the swing when C_d ≠ 0. Not the ideal diode of be-82",
1167
1594
  coverage: "covers its statement only",
1168
1595
  leanProof: "complete",
1169
1596
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1597
+ nested: [],
1170
1598
  },
1171
1599
  {
1172
1600
  key: "be-128",
1173
1601
  bridgeId: "be-128",
1602
+ kind: "bridge",
1174
1603
  theorem: "PhysJS.BoostConverter.boost_ratio",
1175
- covers: "derivation-step: ideal continuous-conduction volt-second balance Vin D + (Vin − Vout)(1 − D) = 0 gives Vout/Vin = 1/(1 − D) for D ≠ 1. No real duty equals both this ratio and the buck ratio D",
1604
+ file: "BoostConverter.lean",
1605
+ covers: "ideal continuous-conduction volt-second balance Vin D + (Vin − Vout)(1 − D) = 0 gives Vout/Vin = 1/(1 − D) for D ≠ 1. No real duty equals both this ratio and the buck ratio D",
1176
1606
  coverage: "covers its statement only",
1177
1607
  leanProof: "complete",
1178
1608
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1609
+ nested: [],
1179
1610
  },
1180
1611
  {
1181
1612
  key: "be-129",
1182
1613
  bridgeId: "be-129",
1614
+ kind: "bridge",
1183
1615
  theorem: "PhysJS.FinEfficiency.efficiency_eq",
1184
- covers: "derivation-step: θ'' = m² θ, an adiabatic tip θ'(L) = 0, and θ(0) = θ_b give θ(x) = θ_b cosh(m(L − x))/cosh(m L). Base Fourier heat over h P L θ_b is η = tanh(m L)/(m L) when m² = h P/(k A). A rectangle with P/A = 2/t gives m = √(2 h/(k t)). One face is not that m. tanh is not 1, so this is not an infinite fin",
1616
+ file: "FinEfficiency.lean",
1617
+ covers: "θ'' = m² θ, an adiabatic tip θ'(L) = 0, and θ(0) = θ_b give θ(x) = θ_b cosh(m(L − x))/cosh(m L). Base Fourier heat over h P L θ_b is η = tanh(m L)/(m L) when m² = h P/(k A). A rectangle with P/A = 2/t gives m = √(2 h/(k t)). One face is not that m. tanh is not 1, so this is not an infinite fin",
1185
1618
  coverage: "covers its statement only",
1186
1619
  leanProof: "complete",
1187
1620
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1621
+ nested: [],
1188
1622
  },
1189
1623
  {
1190
1624
  key: "be-130",
1191
1625
  bridgeId: "be-130",
1626
+ kind: "bridge",
1192
1627
  theorem: "PhysJS.ThermoelectricGenerator.efficiency_eq",
1193
- covers: "derivation-step: hot-junction heat is Q = S Th I − I² R/2 − K ΔT with ΔT = Tc − Th, and load power is P = I (S (Th − Tc) − I R). The Joule 1/2 and the 2 in P' are derivatives. Stationarity P' Q = P Q' at I = S Δ/(R (1 + m)), with m = √(1 + Z Tm), Z = S²/(R K), Δ = Th − Tc, and Tm = (Th + Tc)/2, gives η = (1 − Tc/Th) (m − 1)/(m + Tc/Th). Matched load m = 1 is not stationary when Z Tm ≠ 0. The Carnot factor alone is not this efficiency",
1628
+ file: "ThermoelectricGenerator.lean",
1629
+ covers: "hot-junction heat is Q = S Th I − I² R/2 − K ΔT with ΔT = Tc − Th, and load power is P = I (S (Th − Tc) − I R). The Joule 1/2 and the 2 in P' are derivatives. Stationarity P' Q = P Q' at I = S Δ/(R (1 + m)), with m = √(1 + Z Tm), Z = S²/(R K), Δ = Th − Tc, and Tm = (Th + Tc)/2, gives η = (1 − Tc/Th) (m − 1)/(m + Tc/Th). Matched load m = 1 is not stationary when Z Tm ≠ 0. The Carnot factor alone is not this efficiency",
1194
1630
  coverage: "covers its statement only",
1195
1631
  leanProof: "complete",
1196
1632
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1633
+ nested: [],
1197
1634
  },
1198
1635
  {
1199
1636
  key: "be-131",
1200
1637
  bridgeId: "be-131",
1638
+ kind: "bridge",
1201
1639
  theorem: "PhysJS.Joukowsky.joukowsky_eq",
1202
- covers: "derivation-step: the momentum jump −c Δv + Δp/ρ = 0 is Δp = ρ c Δv. Fluid compressibility dρ/ρ = dp/K and thin-wall hoop strain dA/A = dp D/(E e_wall) give c = √(K/ρ) / √(1 + (K/E)(D/e_wall)). Mass on the same front is the separate statement c² = Δp/Δρ and is not required for the pressure jump. ρ (Δv)² is not ρ c Δv when c ≠ Δv. Dropping the wall term is the rigid-pipe speed",
1640
+ file: "Joukowsky.lean",
1641
+ covers: "the momentum jump −c Δv + Δp/ρ = 0 is Δp = ρ c Δv. Fluid compressibility dρ/ρ = dp/K and thin-wall hoop strain dA/A = dp D/(E e_wall) give c = √(K/ρ) / √(1 + (K/E)(D/e_wall)). Mass on the same front is the separate statement c² = Δp/Δρ and is not required for the pressure jump. ρ (Δv)² is not ρ c Δv when c ≠ Δv. Dropping the wall term is the rigid-pipe speed",
1203
1642
  coverage: "covers its statement only",
1204
1643
  leanProof: "complete",
1205
1644
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1645
+ nested: [],
1206
1646
  },
1207
1647
  {
1208
1648
  key: "be-132",
1209
1649
  bridgeId: "be-132",
1650
+ kind: "bridge",
1210
1651
  theorem: "PhysJS.CoaxialCapacitance.capacitance_per_length",
1211
- covers: "derivation-step: the coaxial field λ/(2 π ε r) integrates to ΔV = (λ/(2 π ε)) ln(b/a), so C' = λ/ΔV = 2 π ε / ln(b/a). Dropping 2 π is not this capacitance. Not a parallel-plate ε A/d",
1652
+ file: "CoaxialCapacitance.lean",
1653
+ covers: "the coaxial field λ/(2 π ε r) integrates to ΔV = (λ/(2 π ε)) ln(b/a), so C' = λ/ΔV = 2 π ε / ln(b/a). Dropping 2 π is not this capacitance. Not a parallel-plate ε A/d",
1212
1654
  coverage: "covers its statement only",
1213
1655
  leanProof: "complete",
1214
1656
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1657
+ nested: [],
1215
1658
  },
1216
1659
  {
1217
1660
  key: "be-133",
1218
1661
  bridgeId: "be-133",
1662
+ kind: "bridge",
1219
1663
  theorem: "PhysJS.DampingRatio.damping_ratio",
1220
- covers: "derivation-step: m ẍ + c ẋ + k x = 0 has ω = √(k/m) and linear coefficient c/m = 2 ζ ω, so ζ = c / (2 √(k m)). For c ≥ 0 the discriminant (c/m)² − 4 (k/m) vanishes iff ζ = 1. Dropping the 2 is not this ratio. √(k/m) is not ζ",
1664
+ file: "DampingRatio.lean",
1665
+ covers: "m ẍ + c ẋ + k x = 0 has ω = √(k/m) and linear coefficient c/m = 2 ζ ω, so ζ = c / (2 √(k m)). For c ≥ 0 the discriminant (c/m)² − 4 (k/m) vanishes iff ζ = 1. Dropping the 2 is not this ratio. √(k/m) is not ζ",
1221
1666
  coverage: "covers its statement only",
1222
1667
  leanProof: "complete",
1223
1668
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1669
+ nested: [],
1224
1670
  },
1225
1671
  {
1226
1672
  key: "be-134",
1227
1673
  bridgeId: "be-134",
1674
+ kind: "bridge",
1228
1675
  theorem: "PhysJS.BlochLaw.bloch_law",
1229
- covers: "derivation-step: the Bose integral I = ζ(3/2) √π/4 is a hypothesis, the same kind as π⁴/15 in be-90. The quadratic measure 1/(2 π²) (k_B T/D)^{3/2} times that integral is ζ(3/2) (k_B T/(4 π D))^{3/2}. One Bohr magneton per magnon gives ΔM = μ_B ζ(3/2) (k_B T/(4 π D))^{3/2}. g μ_B at g = 2 is not that moment. D = 2 J S a² and M(0) = μ_B S/a³ are the nested heisenberg_fraction object and put an extra 1/S. ζ(3/2) is not evaluated",
1676
+ file: "BlochLaw.lean",
1677
+ covers: "the Bose integral I = ζ(3/2) √π/4 is a hypothesis, the same kind as π⁴/15 in be-90. The quadratic measure 1/(2 π²) (k_B T/D)^{3/2} times that integral is ζ(3/2) (k_B T/(4 π D))^{3/2}. One Bohr magneton per magnon gives ΔM = μ_B ζ(3/2) (k_B T/(4 π D))^{3/2}. g μ_B at g = 2 is not that moment. D = 2 J S a² and M(0) = μ_B S/a³ are the nested heisenberg_fraction object and put an extra 1/S. ζ(3/2) is not evaluated",
1230
1678
  coverage: "covers its statement only",
1231
1679
  leanProof: "complete",
1232
1680
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1233
- heisenberg_fraction: {
1234
- theorem: "PhysJS.BlochLaw.heisenberg_fraction",
1235
- covers: "derivation-step: D = 2 J S a² and M(0) = μ_B S/a³ turn the Bloch deficit into ΔM/M(0) = (1/S) ζ(3/2) (k_B T/(8 π J S))^{3/2}",
1236
- coverage: "covers its statement only",
1237
- leanProof: "complete",
1238
- axioms: ["propext", "Classical.choice", "Quot.sound"],
1239
- },
1681
+ nested: [
1682
+ {
1683
+ name: "heisenberg_fraction",
1684
+ kind: "derivation-step",
1685
+ theorem: "PhysJS.BlochLaw.heisenberg_fraction",
1686
+ file: "BlochLaw.lean",
1687
+ covers: "D = 2 J S a² and M(0) = μ_B S/a³ turn the Bloch deficit into ΔM/M(0) = (1/S) ζ(3/2) (k_B T/(8 π J S))^{3/2}",
1688
+ coverage: "covers its statement only",
1689
+ leanProof: "complete",
1690
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
1691
+ },
1692
+ ],
1240
1693
  },
1241
1694
  {
1242
1695
  key: "be-135",
1243
1696
  bridgeId: "be-135",
1697
+ kind: "bridge",
1244
1698
  theorem: "PhysJS.DensityOfStates3D.dos_3d",
1245
- covers: "derivation-step: two spins, k³ = 3 π² n, and E = ℏ² k²/(2 m) give n = (1/(3 π²)) (2 m E/ℏ²)^{3/2}. Differentiating E^{3/2} gives g(E) = (1/(2 π²)) (2 m/ℏ²)^{3/2} √E and g = (3/2) n/E. One spin replaces 1/(2 π²) by 1/(4 π²)",
1699
+ file: "DensityOfStates3D.lean",
1700
+ covers: "two spins, k³ = 3 π² n, and E = ℏ² k²/(2 m) give n = (1/(3 π²)) (2 m E/ℏ²)^{3/2}. Differentiating E^{3/2} gives g(E) = (1/(2 π²)) (2 m/ℏ²)^{3/2} √E and g = (3/2) n/E. One spin replaces 1/(2 π²) by 1/(4 π²)",
1246
1701
  coverage: "covers its statement only",
1247
1702
  leanProof: "complete",
1248
1703
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1704
+ nested: [],
1249
1705
  },
1250
1706
  {
1251
1707
  key: "be-136",
1252
1708
  bridgeId: "be-136",
1709
+ kind: "bridge",
1253
1710
  theorem: "PhysJS.DensityOfStates2D.dos_2d",
1254
- covers: "derivation-step: two spins in the disk, n = k²/(2 π), and E = ℏ² k²/(2 m) give n = m E/(π ℏ²). The derivative is g(E) = m/(π ℏ²), independent of E. A valley factor other than 1 is not this density",
1711
+ file: "DensityOfStates2D.lean",
1712
+ covers: "two spins in the disk, n = k²/(2 π), and E = ℏ² k²/(2 m) give n = m E/(π ℏ²). The derivative is g(E) = m/(π ℏ²), independent of E. A valley factor other than 1 is not this density",
1255
1713
  coverage: "covers its statement only",
1256
1714
  leanProof: "complete",
1257
1715
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1716
+ nested: [],
1258
1717
  },
1259
1718
  {
1260
1719
  key: "be-137",
1261
1720
  bridgeId: "be-137",
1721
+ kind: "bridge",
1262
1722
  theorem: "PhysJS.ThomasFermi.thomas_fermi",
1263
- covers: "derivation-step: φ = φ0 exp(−k x) has second derivative k² φ. δn = g(E_F) e φ and Poisson φ'' = e δn/ε0 give k_TF² = e² g(E_F)/ε0. g(E_F) = (3/2) n/E_F is PhysJS.FermiSea.dos_factor, not a proof of the be-135 prefactor, so k_TF² = (e²/ε0) (3 n)/(2 E_F). A flat density leaves the factor 1. Not the classical Debye length",
1723
+ file: "ThomasFermi.lean",
1724
+ covers: "φ = φ0 exp(−k x) has second derivative k² φ. δn = g(E_F) e φ and Poisson φ'' = e δn/ε0 give k_TF² = e² g(E_F)/ε0. g(E_F) = (3/2) n/E_F is PhysJS.FermiSea.dos_factor, not a proof of the be-135 prefactor, so k_TF² = (e²/ε0) (3 n)/(2 E_F). A flat density leaves the factor 1. Not the classical Debye length",
1264
1725
  coverage: "covers its statement only",
1265
1726
  leanProof: "complete",
1266
1727
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1728
+ nested: [],
1267
1729
  },
1268
1730
  {
1269
1731
  key: "be-138",
1270
1732
  bridgeId: "be-138",
1733
+ kind: "bridge",
1271
1734
  theorem: "PhysJS.BuiltinVoltage.builtin_voltage",
1272
- covers: "derivation-step: complete ionization and Boltzmann tails N_D = n_i exp(e (φ_n − φ_i)/(k_B T)) and N_A = n_i exp(−e (φ_p − φ_i)/(k_B T)) give V_bi = (k_B T/e) ln(N_A N_D/n_i²). The product n_p N_A = n_i² is the be-99 conclusion as an input, not a second proof, and rewrites the same logarithm as ln(N_D/n_p). Not the ideal diode of be-82",
1735
+ file: "BuiltinVoltage.lean",
1736
+ covers: "complete ionization and Boltzmann tails N_D = n_i exp(e (φ_n − φ_i)/(k_B T)) and N_A = n_i exp(−e (φ_p − φ_i)/(k_B T)) give V_bi = (k_B T/e) ln(N_A N_D/n_i²). The product n_p N_A = n_i² is the be-99 conclusion as an input, not a second proof, and rewrites the same logarithm as ln(N_D/n_p). Not the ideal diode of be-82",
1273
1737
  coverage: "covers its statement only",
1274
1738
  leanProof: "complete",
1275
1739
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1740
+ nested: [],
1276
1741
  },
1277
1742
  {
1278
1743
  key: "be-139",
1279
1744
  bridgeId: "be-139",
1745
+ kind: "bridge",
1280
1746
  theorem: "PhysJS.SemiconductorFermi.fermi_level",
1281
- covers: "derivation-step: n = p on Boltzmann tails and N_c/N_v = (m_e*/m_h*)^{3/2} give E_F − (E_c + E_v)/2 = (3/4) k_B T ln(m_h*/m_e*). The 3/4 is half of 3/2. Complete ionization N_D = N_c exp(−(E_c − E_F)/(k_B T)) gives E_c − E_F = k_B T ln(N_c/N_D). Dropping the 3/2 leaves 1/2. Not a Fermi–Dirac integral",
1747
+ file: "SemiconductorFermi.lean",
1748
+ covers: "n = p on Boltzmann tails and N_c/N_v = (m_e*/m_h*)^{3/2} give E_F − (E_c + E_v)/2 = (3/4) k_B T ln(m_h*/m_e*). The 3/4 is half of 3/2. Complete ionization N_D = N_c exp(−(E_c − E_F)/(k_B T)) gives E_c − E_F = k_B T ln(N_c/N_D). Dropping the 3/2 leaves 1/2. Not a Fermi–Dirac integral",
1282
1749
  coverage: "covers its statement only",
1283
1750
  leanProof: "complete",
1284
1751
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1752
+ nested: [],
1285
1753
  },
1286
1754
  {
1287
1755
  key: "be-140",
1288
1756
  bridgeId: "be-140",
1757
+ kind: "bridge",
1289
1758
  theorem: "PhysJS.OnsagerFrequency.onsager_frequency",
1290
- covers: "derivation-step: A = (2 π e B/ℏ) (n + γ) at n and at n + 1. The step is 1, so γ cancels and F = ℏ A/(2 π e), with Δ(1/B) = 1/F. Dropping γ on one orbit is not a step of 1",
1759
+ file: "OnsagerFrequency.lean",
1760
+ covers: "A = (2 π e B/ℏ) (n + γ) at n and at n + 1. The step is 1, so γ cancels and F = ℏ A/(2 π e), with Δ(1/B) = 1/F. Dropping γ on one orbit is not a step of 1",
1291
1761
  coverage: "covers its statement only",
1292
1762
  leanProof: "complete",
1293
1763
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1764
+ nested: [],
1294
1765
  },
1295
1766
  {
1296
1767
  key: "be-141",
1297
1768
  bridgeId: "be-141",
1769
+ kind: "bridge",
1298
1770
  theorem: "PhysJS.JosephsonInductance.inductance_eq",
1299
- covers: "derivation-step: I = I_c sin φ and V = (ℏ/(2 e)) dφ/dt. At φ = 0, cos φ = 1, so V = L dI/dt gives L_J = ℏ/(2 e I_c). Φ₀ = h/(2 e) and h = 2 π ℏ give L_J = Φ₀/(2 π I_c). A phase with cos φ ≠ 1 is not this inductance. Not the frequency of be-59",
1771
+ file: "JosephsonInductance.lean",
1772
+ covers: "I = I_c sin φ and V = (ℏ/(2 e)) dφ/dt. At φ = 0, cos φ = 1, so V = L dI/dt gives L_J = ℏ/(2 e I_c). Φ₀ = h/(2 e) and h = 2 π ℏ give L_J = Φ₀/(2 π I_c). A phase with cos φ ≠ 1 is not this inductance. Not the frequency of be-59",
1300
1773
  coverage: "covers its statement only",
1301
1774
  leanProof: "complete",
1302
1775
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1776
+ nested: [],
1303
1777
  },
1304
1778
  {
1305
1779
  key: "be-142",
1306
1780
  bridgeId: "be-142",
1781
+ kind: "bridge",
1307
1782
  theorem: "PhysJS.LowerCritical.lower_critical",
1308
- covers: "derivation-step: the core cutoff is the hypothesis that j(r) = Φ₀/(2 π μ0 λ² r) on ξ ≤ r ≤ λ. The London kinetic energy integrates to (Φ₀²/(4 π μ0 λ²)) ln(λ/ξ). B_c1 = μ0 ε/Φ₀ gives B_c1 = (Φ₀/(4 π λ²)) ln(λ/ξ), with Φ₀ = h/(2 e). An additive constant under the logarithm changes the field and not the prefactor. Not be-96",
1783
+ file: "LowerCritical.lean",
1784
+ covers: "the core cutoff is the hypothesis that j(r) = Φ₀/(2 π μ0 λ² r) on ξ ≤ r ≤ λ. The London kinetic energy integrates to (Φ₀²/(4 π μ0 λ²)) ln(λ/ξ). B_c1 = μ0 ε/Φ₀ gives B_c1 = (Φ₀/(4 π λ²)) ln(λ/ξ), with Φ₀ = h/(2 e). An additive constant under the logarithm changes the field and not the prefactor. Not be-96",
1309
1785
  coverage: "covers its statement only",
1310
1786
  leanProof: "complete",
1311
1787
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1788
+ nested: [],
1312
1789
  },
1313
1790
  {
1314
1791
  key: "be-143",
1315
1792
  bridgeId: "be-143",
1793
+ kind: "bridge",
1316
1794
  theorem: "PhysJS.AcDrude.ac_drude",
1317
- covers: "derivation-step: the antiderivative of exp(−a s) cos(b s) is proved, and the improper integral is a/(a² + b²). At a = 1/τ and b = ω, (σ₀/τ) times that integral is σ₀/(1 + ω² τ²). σ₀ = n e² τ/m is an input. Dropping the DC 1 is not this conductivity. Not be-123",
1795
+ file: "AcDrude.lean",
1796
+ covers: "the antiderivative of exp(−a s) cos(b s) is proved, and the improper integral is a/(a² + b²). At a = 1/τ and b = ω, (σ₀/τ) times that integral is σ₀/(1 + ω² τ²). σ₀ = n e² τ/m is an input. Dropping the DC 1 is not this conductivity. Not be-123",
1318
1797
  coverage: "covers its statement only",
1319
1798
  leanProof: "complete",
1320
1799
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1800
+ nested: [],
1321
1801
  },
1322
1802
  {
1323
1803
  key: "be-144",
1324
1804
  bridgeId: "be-144",
1805
+ kind: "bridge",
1325
1806
  theorem: "PhysJS.Matthiessen.matthiessen",
1326
- covers: "derivation-step: independent Poisson processes have exp(−t/τ) = exp(−t/τ₁) exp(−t/τ₂), so 1/τ = 1/τ₁ + 1/τ₂. One Drude factor ρ_i = C/τ_i makes ρ = ρ₁ + ρ₂. One lifetime is not the parallel sum. Not a collision integral",
1807
+ file: "Matthiessen.lean",
1808
+ covers: "independent Poisson processes have exp(−t/τ) = exp(−t/τ₁) exp(−t/τ₂), so 1/τ = 1/τ₁ + 1/τ₂. One Drude factor ρ_i = C/τ_i makes ρ = ρ₁ + ρ₂. One lifetime is not the parallel sum. Not a collision integral",
1327
1809
  coverage: "covers its statement only",
1328
1810
  leanProof: "complete",
1329
1811
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1812
+ nested: [],
1330
1813
  },
1331
1814
  {
1332
1815
  key: "be-145",
1333
1816
  bridgeId: "be-145",
1817
+ kind: "bridge",
1334
1818
  theorem: "PhysJS.Stoner.stoner",
1335
- covers: "derivation-step: χ = χ_P ∑_n (I g(E_F))^n. For |I g(E_F)| < 1 the geometric series is 1/(1 − I g(E_F)), so χ = χ_P/(1 − I g(E_F)). The pole 1 − I g(E_F) = 0 is the same formula as I g(E_F) = 1. χ_P is be-94 and is not re-proved. The first two bubbles are not the closed form",
1819
+ file: "Stoner.lean",
1820
+ covers: "χ = χ_P ∑_n (I g(E_F))^n. For |I g(E_F)| < 1 the geometric series is 1/(1 − I g(E_F)), so χ = χ_P/(1 − I g(E_F)). The pole 1 − I g(E_F) = 0 is the same formula as I g(E_F) = 1. χ_P is be-94 and is not re-proved. The first two bubbles are not the closed form",
1336
1821
  coverage: "covers its statement only",
1337
1822
  leanProof: "complete",
1338
1823
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1824
+ nested: [],
1339
1825
  },
1340
1826
  {
1341
1827
  key: "be-146",
1342
1828
  bridgeId: "be-146",
1829
+ kind: "bridge",
1343
1830
  theorem: "PhysJS.GorterCasimir.gorter_casimir",
1344
- covers: "derivation-step: the exponent p = 4 is a hypothesis. n_s/n = 1 − (T/T_c)^p and the London depths of be-75, not re-proved, give λ(T) = λ(0)/√(1 − (T/T_c)^4). The exponent 2 is not 4 when the reduced temperature is neither 0 nor 1. Not a BCS gap and not a second proof of be-75",
1831
+ file: "GorterCasimir.lean",
1832
+ covers: "the exponent p = 4 is a hypothesis. n_s/n = 1 − (T/T_c)^p and the London depths of be-75, not re-proved, give λ(T) = λ(0)/√(1 − (T/T_c)^4). The exponent 2 is not 4 when the reduced temperature is neither 0 nor 1. Not a BCS gap and not a second proof of be-75",
1345
1833
  coverage: "covers its statement only",
1346
1834
  leanProof: "complete",
1347
1835
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1836
+ nested: [],
1348
1837
  },
1349
1838
  {
1350
1839
  key: "be-147",
1351
1840
  bridgeId: "be-147",
1841
+ kind: "bridge",
1352
1842
  theorem: "PhysJS.Arrhenius.arrhenius_eq",
1353
- covers: "derivation-step: k = A exp(−Ea/(R T)) with R = N_A k_B is the molecular factor exp(−ε/(k_B T)) at ε = Ea/N_A. The prefactor A is temperature-independent here. Not the Eyring identification of A",
1843
+ file: "Arrhenius.lean",
1844
+ covers: "k = A exp(−Ea/(R T)) with R = N_A k_B is the molecular factor exp(−ε/(k_B T)) at ε = Ea/N_A. The prefactor A is temperature-independent here. Not the Eyring identification of A",
1354
1845
  coverage: "covers its statement only",
1355
1846
  leanProof: "complete",
1356
1847
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1848
+ nested: [],
1357
1849
  },
1358
1850
  {
1359
1851
  key: "be-148",
1360
1852
  bridgeId: "be-148",
1853
+ kind: "bridge",
1361
1854
  theorem: "PhysJS.Eyring.eyring_eq",
1362
- covers: "derivation-step: k = (k_B T/h) exp(−ΔG‡/(k_B T)). The molar form calls PhysJS.Arrhenius.arrhenius_eq at R = N_A k_B. The logarithmic derivative is Ea = ΔH‡ + R T. That Ea is not the constant in k = A exp(−Ea/(R T)) at A = (k_B T/h) exp(ΔS‡/R); those substitutions differ by exp(−1). The transmission coefficient is 1",
1855
+ file: "Eyring.lean",
1856
+ covers: "k = (k_B T/h) exp(−ΔG‡/(k_B T)). The molar form calls PhysJS.Arrhenius.arrhenius_eq at R = N_A k_B. The logarithmic derivative is Ea = ΔH‡ + R T. That Ea is not the constant in k = A exp(−Ea/(R T)) at A = (k_B T/h) exp(ΔS‡/R); those substitutions differ by exp(−1). The transmission coefficient is 1",
1363
1857
  coverage: "covers its statement only",
1364
1858
  leanProof: "complete",
1365
1859
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1860
+ nested: [],
1366
1861
  },
1367
1862
  {
1368
1863
  key: "be-149",
1369
1864
  bridgeId: "be-149",
1865
+ kind: "bridge",
1370
1866
  theorem: "PhysJS.VanTHoff.vant_hoff",
1371
- covers: "derivation-step: equilibrium_log is PhysJS.GibbsIsotherm.gibbs_eq, so ln K = −ΔG°/(R T). At ΔG° = ΔH° − T ΔS° with both constant, d ln K/dT = ΔH°/(R T²). Not a second proof of be-150 and not a van 't Hoff plot",
1867
+ file: "VanTHoff.lean",
1868
+ covers: "equilibrium_log is PhysJS.GibbsIsotherm.gibbs_eq, so ln K = −ΔG°/(R T). At ΔG° = ΔH° − T ΔS° with both constant, d ln K/dT = ΔH°/(R T²). Not a second proof of be-150 and not a van 't Hoff plot",
1372
1869
  coverage: "covers its statement only",
1373
1870
  leanProof: "complete",
1374
1871
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1872
+ nested: [],
1375
1873
  },
1376
1874
  {
1377
1875
  key: "be-150",
1378
1876
  bridgeId: "be-150",
1877
+ kind: "bridge",
1379
1878
  theorem: "PhysJS.GibbsIsotherm.gibbs_eq",
1380
- covers: "derivation-step: Σ ν_i μ_i = 0 with μ_i = μ_i° + R T ln a_i gives ΔG° = −R T ln K for K > 0 and T ≠ 0. Not an activity model",
1879
+ file: "GibbsIsotherm.lean",
1880
+ covers: "Σ ν_i μ_i = 0 with μ_i = μ_i° + R T ln a_i gives ΔG° = −R T ln K for K > 0 and T ≠ 0. Not an activity model",
1381
1881
  coverage: "covers its statement only",
1382
1882
  leanProof: "complete",
1383
1883
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1884
+ nested: [],
1384
1885
  },
1385
1886
  {
1386
1887
  key: "be-151",
1387
1888
  bridgeId: "be-151",
1889
+ kind: "bridge",
1388
1890
  theorem: "PhysJS.NernstGibbs.nernst_eq",
1389
- covers: "derivation-step: the cell standard state is PhysJS.GibbsIsotherm.gibbs_eq, and ΔG = −n F E with F = N_A e gives E = E° − (R T/(n F)) ln Q. Not a second proof of be-150",
1891
+ file: "NernstGibbs.lean",
1892
+ covers: "the cell standard state is PhysJS.GibbsIsotherm.gibbs_eq, and ΔG = −n F E with F = N_A e gives E = E° − (R T/(n F)) ln Q. Not a second proof of be-150",
1390
1893
  coverage: "covers its statement only",
1391
1894
  leanProof: "complete",
1392
1895
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1896
+ nested: [],
1393
1897
  },
1394
1898
  {
1395
1899
  key: "be-152",
1396
1900
  bridgeId: "be-152",
1901
+ kind: "bridge",
1397
1902
  theorem: "PhysJS.ClausiusClapeyron.integrated_eq",
1398
- covers: "derivation-step: ideal_vapor_slope calls PhysJS.Clapeyron.slope_eq, be-71, and substitutes Δv = R T/P. Constant latent heat integrates to ln(P2/P1) = −(ΔH/R)(1/T2 − 1/T1). Both temperatures are positive. Not a second proof of be-71. A separate liquid volume is not this row",
1903
+ file: "ClausiusClapeyron.lean",
1904
+ covers: "ideal_vapor_slope calls PhysJS.Clapeyron.slope_eq, be-71, and substitutes Δv = R T/P. Constant latent heat integrates to ln(P2/P1) = −(ΔH/R)(1/T2 − 1/T1). Both temperatures are positive. Not a second proof of be-71. A separate liquid volume is not this row",
1399
1905
  coverage: "covers its statement only",
1400
1906
  leanProof: "complete",
1401
1907
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1908
+ nested: [],
1402
1909
  },
1403
1910
  {
1404
1911
  key: "be-153",
1405
1912
  bridgeId: "be-153",
1913
+ kind: "bridge",
1406
1914
  theorem: "PhysJS.Raoult.raoult_eq",
1407
- covers: "derivation-step: PhysJS.GibbsIsotherm.gibbs_eq on the ideal mixture and on the pure liquid gives P = x P*. The liquid activity is the mole fraction and the vapor activity is P/P°. Not a second proof of be-150. A nonideal activity is not this row",
1915
+ file: "Raoult.lean",
1916
+ covers: "PhysJS.GibbsIsotherm.gibbs_eq on the ideal mixture and on the pure liquid gives P = x P*. The liquid activity is the mole fraction and the vapor activity is P/P°. Not a second proof of be-150. A nonideal activity is not this row",
1408
1917
  coverage: "covers its statement only",
1409
1918
  leanProof: "complete",
1410
1919
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1920
+ nested: [],
1411
1921
  },
1412
1922
  {
1413
1923
  key: "be-154",
1414
1924
  bridgeId: "be-154",
1925
+ kind: "bridge",
1415
1926
  theorem: "PhysJS.Prandtl.prandtl_eq",
1416
- covers: "derivation-step: the ratio identity Pr = ν/α with ν = μ/ρ and α = k/(ρ c_p) is the product Pr k = μ c_p. Not a heat-transfer correlation and not the Reynolds analogy of be-86",
1927
+ file: "Prandtl.lean",
1928
+ covers: "the ratio identity Pr = ν/α with ν = μ/ρ and α = k/(ρ c_p) is the product Pr k = μ c_p. Not a heat-transfer correlation and not the Reynolds analogy of be-86",
1417
1929
  coverage: "covers its statement only",
1418
1930
  leanProof: "complete",
1419
1931
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1932
+ nested: [],
1420
1933
  },
1421
1934
  {
1422
1935
  key: "be-155",
1423
1936
  bridgeId: "be-155",
1937
+ kind: "bridge",
1424
1938
  theorem: "PhysJS.ReynoldsNumber.reynolds_eq",
1425
- covers: "derivation-step: inertial flux over viscous flux is Re = (ρ v²)/(μ v/L) = v L/ν with ν = μ/ρ, so Re μ = ρ v L. Not a friction correlation and not the pipe factor of be-77",
1939
+ file: "ReynoldsNumber.lean",
1940
+ covers: "inertial flux over viscous flux is Re = (ρ v²)/(μ v/L) = v L/ν with ν = μ/ρ, so Re μ = ρ v L. Not a friction correlation and not the pipe factor of be-77",
1426
1941
  coverage: "covers its statement only",
1427
1942
  leanProof: "complete",
1428
1943
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1944
+ nested: [],
1429
1945
  },
1430
1946
  {
1431
1947
  key: "be-156",
1432
1948
  bridgeId: "be-156",
1949
+ kind: "bridge",
1433
1950
  theorem: "PhysJS.Biot.biot_eq",
1434
- covers: "derivation-step: with L_c = V/A, Bi = (L_c/k)/(1/h) = h V/(k A), so Bi k = h L_c. Not a lumped-capacitance criterion",
1951
+ file: "Biot.lean",
1952
+ covers: "with L_c = V/A, Bi = (L_c/k)/(1/h) = h V/(k A), so Bi k = h L_c. Not a lumped-capacitance criterion",
1435
1953
  coverage: "covers its statement only",
1436
1954
  leanProof: "complete",
1437
1955
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1956
+ nested: [],
1438
1957
  },
1439
1958
  {
1440
1959
  key: "be-157",
1441
1960
  bridgeId: "be-157",
1961
+ kind: "bridge",
1442
1962
  theorem: "PhysJS.Nusselt.nusselt_eq",
1443
- covers: "derivation-step: h = k (∂T/∂n)/ΔT makes Nu = h L/k equal to L (∂T/∂n)/ΔT, so Nu k = h L. Not a correlation for Nu",
1963
+ file: "Nusselt.lean",
1964
+ covers: "h = k (∂T/∂n)/ΔT makes Nu = h L/k equal to L (∂T/∂n)/ΔT, so Nu k = h L. Not a correlation for Nu",
1444
1965
  coverage: "covers its statement only",
1445
1966
  leanProof: "complete",
1446
1967
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1968
+ nested: [],
1447
1969
  },
1448
1970
  {
1449
1971
  key: "be-158",
1450
1972
  bridgeId: "be-158",
1973
+ kind: "bridge",
1451
1974
  theorem: "PhysJS.Schmidt.schmidt_eq",
1452
- covers: "derivation-step: Sc = ν/D with ν = μ/ρ is Sc ρ D = μ, and Le = α/D = Sc/Pr once Pr = ν/α. Not a mass-transfer correlation",
1975
+ file: "Schmidt.lean",
1976
+ covers: "Sc = ν/D with ν = μ/ρ is Sc ρ D = μ, and Le = α/D = Sc/Pr once Pr = ν/α. Not a mass-transfer correlation",
1453
1977
  coverage: "covers its statement only",
1454
1978
  leanProof: "complete",
1455
1979
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1980
+ nested: [],
1456
1981
  },
1457
1982
  {
1458
1983
  key: "be-159",
1459
1984
  bridgeId: "be-159",
1985
+ kind: "bridge",
1460
1986
  theorem: "PhysJS.Sherwood.sherwood_eq",
1461
- covers: "derivation-step: k_m = D (∂c/∂n)/Δc makes Sh = k_m L/D equal to L (∂c/∂n)/Δc, so Sh D = k_m L. Not a correlation for Sh",
1987
+ file: "Sherwood.lean",
1988
+ covers: "k_m = D (∂c/∂n)/Δc makes Sh = k_m L/D equal to L (∂c/∂n)/Δc, so Sh D = k_m L. Not a correlation for Sh",
1462
1989
  coverage: "covers its statement only",
1463
1990
  leanProof: "complete",
1464
1991
  axioms: ["propext", "Classical.choice", "Quot.sound"],
1992
+ nested: [],
1465
1993
  },
1466
1994
  {
1467
1995
  key: "be-160",
1468
1996
  bridgeId: "be-160",
1997
+ kind: "bridge",
1469
1998
  theorem: "PhysJS.FourierConduction.fourier_eq",
1470
- covers: "derivation-step: a constant flux q = −k dT/dx integrates to q L = −k (T(L) − T(0)). A temperature-dependent conductivity is not this row",
1999
+ file: "FourierConduction.lean",
2000
+ covers: "a constant flux q = −k dT/dx integrates to q L = −k (T(L) − T(0)). A temperature-dependent conductivity is not this row",
1471
2001
  coverage: "covers its statement only",
1472
2002
  leanProof: "complete",
1473
2003
  axioms: ["propext", "Classical.choice", "Quot.sound"],
2004
+ nested: [],
1474
2005
  },
1475
2006
  {
1476
2007
  key: "be-161",
1477
2008
  bridgeId: "be-161",
2009
+ kind: "bridge",
1478
2010
  theorem: "PhysJS.NewtonCooling.newton_eq",
1479
- covers: "derivation-step: ρ c V dθ/dt = −h A θ integrates to θ(t) = θ(0) exp(−t/τ) with τ = ρ c V/(h A). Radiation in T⁴ is not this row",
2011
+ file: "NewtonCooling.lean",
2012
+ covers: "ρ c V dθ/dt = −h A θ integrates to θ(t) = θ(0) exp(−t/τ) with τ = ρ c V/(h A). Radiation in T⁴ is not this row",
1480
2013
  coverage: "covers its statement only",
1481
2014
  leanProof: "complete",
1482
2015
  axioms: ["propext", "Classical.choice", "Quot.sound"],
2016
+ nested: [],
1483
2017
  },
1484
2018
  {
1485
2019
  key: "be-162",
1486
2020
  bridgeId: "be-162",
2021
+ kind: "bridge",
1487
2022
  theorem: "PhysJS.Otto.otto_eq",
1488
- covers: "derivation-step: the cold-air isentropic cycle at constant γ > 1 gives η = 1 − r^(1−γ). A temperature-dependent heat capacity is not this row",
2023
+ file: "Otto.lean",
2024
+ covers: "the cold-air isentropic cycle at constant γ > 1 gives η = 1 − r^(1−γ). A temperature-dependent heat capacity is not this row",
1489
2025
  coverage: "covers its statement only",
1490
2026
  leanProof: "complete",
1491
2027
  axioms: ["propext", "Classical.choice", "Quot.sound"],
2028
+ nested: [],
1492
2029
  },
1493
2030
  {
1494
2031
  key: "be-163",
1495
2032
  bridgeId: "be-163",
2033
+ kind: "bridge",
1496
2034
  theorem: "PhysJS.JouleThomson.joule_thomson_eq",
1497
- covers: "derivation-step: the enthalpy differential dh = c_p dT + (v − T (∂v/∂T)_p) dP is a hypothesis. It gives μ_JT c_p = T (∂v/∂T)_p − v, and the ideal-gas bracket v = R T/P vanishes. Not a measured inversion curve",
2035
+ file: "JouleThomson.lean",
2036
+ covers: "the enthalpy differential dh = c_p dT + (v − T (∂v/∂T)_p) dP is a hypothesis. It gives μ_JT c_p = T (∂v/∂T)_p − v, and the ideal-gas bracket v = R T/P vanishes. Not a measured inversion curve",
1498
2037
  coverage: "covers its statement only",
1499
2038
  leanProof: "complete",
1500
2039
  axioms: ["propext", "Classical.choice", "Quot.sound"],
2040
+ nested: [],
1501
2041
  },
1502
2042
  {
1503
2043
  key: "be-164",
1504
2044
  bridgeId: "be-164",
2045
+ kind: "bridge",
1505
2046
  theorem: "PhysJS.PlanckSpectrum.planck_eq",
1506
- covers: "derivation-step: bose_factor proves 1/(e^x − 1) = Σ_{n≥1} e^{−n x}. The mode density 8 π ν²/c³, two polarizations, is a hypothesis. Their product is u (e^{hν/kT} − 1) c³ = 8 π h ν³. The frequency integral is be-165",
2047
+ file: "PlanckSpectrum.lean",
2048
+ covers: "bose_factor proves 1/(e^x − 1) = Σ_{n≥1} e^{−n x}. The mode density 8 π ν²/c³, two polarizations, is a hypothesis. Their product is u (e^{hν/kT} − 1) c³ = 8 π h ν³. The frequency integral is be-165",
1507
2049
  coverage: "covers its statement only",
1508
2050
  leanProof: "complete",
1509
2051
  axioms: ["propext", "Classical.choice", "Quot.sound"],
2052
+ nested: [],
1510
2053
  },
1511
2054
  {
1512
2055
  key: "be-165",
1513
2056
  bridgeId: "be-165",
2057
+ kind: "bridge",
1514
2058
  theorem: "PhysJS.StefanBoltzmann.stefan_boltzmann_eq",
1515
- covers: "derivation-step: ∫_0^∞ x³/(e^x − 1) dx = π⁴/15 from Σ n^{−4} = π⁴/90 and Γ(4) = 6. The hemisphere integrals give the factor c/4. With h = 2 π ℏ, σ = π² k_B⁴/(60 ℏ³ c²) = 2 π⁵ k_B⁴/(15 h³ c²). The mode density 8 π is the hypothesis of be-164. Not a radiometer measurement",
2059
+ file: "StefanBoltzmann.lean",
2060
+ covers: "∫_0^∞ x³/(e^x − 1) dx = π⁴/15 from Σ n^{−4} = π⁴/90 and Γ(4) = 6. The hemisphere integrals give the factor c/4. With h = 2 π ℏ, σ = π² k_B⁴/(60 ℏ³ c²) = 2 π⁵ k_B⁴/(15 h³ c²). The mode density 8 π is the hypothesis of be-164. Not a radiometer measurement",
1516
2061
  coverage: "covers its statement only",
1517
2062
  leanProof: "complete",
1518
2063
  axioms: ["propext", "Classical.choice", "Quot.sound"],
2064
+ nested: [],
1519
2065
  },
1520
2066
  {
1521
2067
  key: "be-166",
1522
2068
  bridgeId: "be-166",
2069
+ kind: "bridge",
1523
2070
  theorem: "PhysJS.WienDisplacement.wien_eq",
1524
- covers: "derivation-step: spectral(x) = x⁵/(e^x − 1) has derivative zero for x > 0 exactly when 5 − x = 5 exp(−x). That equation has a unique positive root and the root lies in (4, 5). The decimal is not evaluated. x = 0 is an extraneous root. The displacement constant is b k_B x = h c",
2071
+ file: "WienDisplacement.lean",
2072
+ covers: "spectral(x) = x⁵/(e^x − 1) has derivative zero for x > 0 exactly when 5 − x = 5 exp(−x). That equation has a unique positive root and the root lies in (4, 5). The decimal is not evaluated. x = 0 is an extraneous root. The displacement constant is b k_B x = h c",
1525
2073
  coverage: "covers its statement only",
1526
2074
  leanProof: "complete",
1527
2075
  axioms: ["propext", "Classical.choice", "Quot.sound"],
2076
+ nested: [],
1528
2077
  },
1529
2078
  {
1530
2079
  key: "be-167",
1531
2080
  bridgeId: "be-167",
2081
+ kind: "bridge",
1532
2082
  theorem: "PhysJS.SackurTetrode.sackur_tetrode",
1533
- covers: "derivation-step: n_Q = λ_T^{−3} uses PhysJS.ThermalDeBroglie.wavelength_eq, be-12. Stirling ln N! = N ln N − N is a hypothesis, and U = (3/2) N k_B T is equipartition. They give S = N k_B (ln(n_Q/n) + 5/2). Not a second proof of be-12 and not the Stirling series",
2083
+ file: "SackurTetrode.lean",
2084
+ covers: "n_Q = λ_T^{−3} uses PhysJS.ThermalDeBroglie.wavelength_eq, be-12. Stirling ln N! = N ln N − N is a hypothesis, and U = (3/2) N k_B T is equipartition. They give S = N k_B (ln(n_Q/n) + 5/2). Not a second proof of be-12 and not the Stirling series",
1534
2085
  coverage: "covers its statement only",
1535
2086
  leanProof: "complete",
1536
2087
  axioms: ["propext", "Classical.choice", "Quot.sound"],
2088
+ nested: [],
1537
2089
  },
1538
2090
  {
1539
2091
  key: "be-168",
1540
2092
  bridgeId: "be-168",
2093
+ kind: "bridge",
1541
2094
  theorem: "PhysJS.Saha.saha_eq",
1542
- covers: "derivation-step: the thermal factor is PhysJS.ThermalDeBroglie.wavelength_eq, so K = (2 π m k_B T/h²)^{3/2} exp(−I/(k_B T)). The electron weight 2 and the internal partition functions are not in this statement. Not a second proof of be-12",
2095
+ file: "Saha.lean",
2096
+ covers: "the thermal factor is PhysJS.ThermalDeBroglie.wavelength_eq, so K = (2 π m k_B T/h²)^{3/2} exp(−I/(k_B T)). The electron weight 2 and the internal partition functions are not in this statement. Not a second proof of be-12",
1543
2097
  coverage: "covers its statement only",
1544
2098
  leanProof: "complete",
1545
2099
  axioms: ["propext", "Classical.choice", "Quot.sound"],
2100
+ nested: [],
1546
2101
  },
1547
2102
  {
1548
2103
  key: "be-169",
1549
2104
  bridgeId: "be-169",
2105
+ kind: "bridge",
1550
2106
  theorem: "PhysJS.RichardsonDushman.richardson_eq",
1551
- covers: "derivation-step: ∫_a^∞ exp(−c x) dx = exp(−c a)/c is proved. The current is the hypothesis 4 π m e/h³ times one factor k_B T from each tail, so J h³ exp(φ/(k_B T)) = 4 π m e k_B² T². Here e is the elementary charge. The Boltzmann tail replaces Fermi–Dirac and the reflection coefficient is 1",
2107
+ file: "RichardsonDushman.lean",
2108
+ covers: "∫_a^∞ exp(−c x) dx = exp(−c a)/c is proved. The current is the hypothesis 4 π m e/h³ times one factor k_B T from each tail, so J h³ exp(φ/(k_B T)) = 4 π m e k_B² T². Here e is the elementary charge. The Boltzmann tail replaces Fermi–Dirac and the reflection coefficient is 1",
1552
2109
  coverage: "covers its statement only",
1553
2110
  leanProof: "complete",
1554
2111
  axioms: ["propext", "Classical.choice", "Quot.sound"],
2112
+ nested: [],
1555
2113
  },
1556
2114
  {
1557
2115
  key: "be-170",
1558
2116
  bridgeId: "be-170",
2117
+ kind: "bridge",
1559
2118
  theorem: "PhysJS.OnsagerReciprocity.onsager_eq",
1560
- covers: "derivation-step: the mixed partials of Φ = ½ L11 X1² + L12 X1 X2 + ½ L22 X2² are both L12, so L12 = L21. thermoelectric_instance applies PhysJS.KelvinRelation.peltier_eq, be-73, and does not re-prove Π = S T. An antisymmetric cross term produces no entropy. The magnetic case L12(B) = L21(−B) is not this row",
2119
+ file: "OnsagerReciprocity.lean",
2120
+ covers: "the mixed partials of Φ = ½ L11 X1² + L12 X1 X2 + ½ L22 X2² are both L12, so L12 = L21. thermoelectric_instance applies PhysJS.KelvinRelation.peltier_eq, be-73, and does not re-prove Π = S T. An antisymmetric cross term produces no entropy. The magnetic case L12(B) = L21(−B) is not this row",
2121
+ coverage: "covers its statement only",
2122
+ leanProof: "complete",
2123
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2124
+ nested: [],
2125
+ },
2126
+ {
2127
+ key: "be-171",
2128
+ bridgeId: "be-171",
2129
+ kind: "bridge",
2130
+ theorem: "PhysJS.CantileverStiffness.stiffness_eq",
2131
+ file: "CantileverStiffness.lean",
2132
+ covers: "integrates the Euler-Bernoulli beam equation E I w'' = F (L - x) twice from the clamp (w(0) = w'(0) = 0) to get w(L) = F L^3 / (3 E I), hence k = F / w(L) = 3 E I / L^3 and, for I = b t^3 / 12, k = E b t^3 / (4 L^3). Premises are the beam equation, the moment F (L - x) and the clamp conditions; not shear deflection and not a derivation of the beam equation itself.",
2133
+ coverage: "covers its statement only",
2134
+ leanProof: "complete",
2135
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2136
+ nested: [],
2137
+ },
2138
+ {
2139
+ key: "be-172",
2140
+ bridgeId: "be-172",
2141
+ kind: "bridge",
2142
+ theorem: "PhysJS.CantileverFrequency.frequency_eq",
2143
+ file: "CantileverFrequency.lean",
2144
+ covers: "from E I phi'''' = rho A omega^2 phi with the general mode a cos + b sin + c cosh + d sinh, the clamp and free-end conditions give a 2x2 system with determinant 2 (1 + cos(lam) cosh(lam)), so cos(lam) cosh(lam) = -1; omega = beta^2 sqrt(E I / (rho A)) and f1 = (lam^2 / 2 pi) sqrt(E I / (rho A L^4)). first_root proves by the intermediate value theorem that the first positive root exists, lies in (pi/2, pi) and is unique there, so pi^2/4 < lam^2 < pi^2. Not a decimal for lam_1 (1.8751 is not evaluated) and not an added-mass or damped frequency.",
2145
+ coverage: "covers its statement only",
2146
+ leanProof: "complete",
2147
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2148
+ nested: [],
2149
+ },
2150
+ {
2151
+ key: "be-173",
2152
+ bridgeId: "be-173",
2153
+ kind: "bridge",
2154
+ theorem: "PhysJS.SpringSoftening.stiffness_eq",
2155
+ file: "SpringSoftening.lean",
2156
+ covers: "with C(x) = eps0 A / (g - x) the coenergy force is F_e = (1/2) V^2 dC/dx = eps0 A V^2 / (2 (g-x)^2); the net-force slope gives k_eff = k - eps0 A V^2 / (g - x)^3 (HasDerivAt). pull_in_gap_eq shows equilibrium plus k_eff = 0 forces x = g/3 and V^2 = 8 k g^3 / (27 eps0 A), the be-79 value. Voltage control, parallel plates, no fringing; not charge control.",
2157
+ coverage: "covers its statement only",
2158
+ leanProof: "complete",
2159
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2160
+ nested: [],
2161
+ },
2162
+ {
2163
+ key: "be-174",
2164
+ bridgeId: "be-174",
2165
+ kind: "bridge",
2166
+ theorem: "PhysJS.QuarterBridge.bridge_eq",
2167
+ file: "QuarterBridge.lean",
2168
+ covers: "from Kirchhoff current law on the two dividers (reference reads Vex/2, gauge R(1+x) reads Vex(1+x)/(2+x)) the output is Vout/Vex = x / (4 + 2x). small_signal proves the slope at 0 is 1/4, nonlinearity_eq the exact deficit x^2 / (4 (2 + x)). Three equal fixed resistors, no lead wire or self-heating; not half or full bridge.",
2169
+ coverage: "covers its statement only",
2170
+ leanProof: "complete",
2171
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2172
+ nested: [],
2173
+ },
2174
+ {
2175
+ key: "be-175",
2176
+ bridgeId: "be-175",
2177
+ kind: "bridge",
2178
+ theorem: "PhysJS.CoaxialImpedance.impedance_from_gauss",
2179
+ file: "CoaxialImpedance.lean",
2180
+ covers: "L' = (mu/2pi) ln(b/a) from the integrated Ampere flux, C' from be-132 (CoaxialCapacitance.capacitance_per_length applied to the Gauss integral), and the telegrapher coefficient matching Z0^2 C' = L' give Z0 = (1/2pi) sqrt(mu/eps) ln(b/a). Lossless TEM, uniform line; the 59.96 ohm decimal is not evaluated, and not a lossy or microstrip line.",
2181
+ coverage: "covers its statement only",
2182
+ leanProof: "complete",
2183
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2184
+ nested: [],
2185
+ },
2186
+ {
2187
+ key: "be-176",
2188
+ bridgeId: "be-176",
2189
+ kind: "bridge",
2190
+ theorem: "PhysJS.SauerbreyMass.sauerbrey_eq",
2191
+ file: "SauerbreyMass.lean",
2192
+ covers: "linearizes f(h) = v/(2h) (f0 = v/(2h), v = sqrt(mu_q/rho_q)) under the added thickness dh = dm/(rho_q A) to get df = -f0 dh / h = -2 f0^2 dm / (A sqrt(rho_q mu_q)); exact_shift gives the unlinearized -f0 dh/(h+dh). Premises: film acts as extra crystal thickness, rigid, dh << h; not a viscoelastic (Kanazawa) or liquid load.",
2193
+ coverage: "covers its statement only",
2194
+ leanProof: "complete",
2195
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2196
+ nested: [],
2197
+ },
2198
+ {
2199
+ key: "be-177",
2200
+ bridgeId: "be-177",
2201
+ kind: "bridge",
2202
+ theorem: "PhysJS.EquipartitionDisplacement.displacement_eq",
2203
+ file: "EquipartitionDisplacement.lean",
2204
+ covers: "from the spring law dU/dx = k x with U(0) = 0, U = (k/2) x^2; the Boltzmann weight integrates to sqrt(2 pi kB T / k), normalizes to the Gaussian of variance kB T / k, and the mean square is kB T / k with energy (1/2) kB T per mode. Reuses be-87 machinery (CapacitorNoise). Classical, harmonic, equilibrium; not the quantum variance and not (3/2) kB T.",
2205
+ coverage: "covers its statement only",
2206
+ leanProof: "complete",
2207
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2208
+ nested: [],
2209
+ },
2210
+ {
2211
+ key: "be-178",
2212
+ bridgeId: "be-178",
2213
+ kind: "bridge",
2214
+ theorem: "PhysJS.ThermomechanicalNoise.force_noise_eq",
2215
+ file: "ThermomechanicalNoise.lean",
2216
+ covers: "for m v' + c v = F with white two-sided force density S2, the Wiener-Khinchin velocity variance is S2/(2 c m) (Lorentzian integral pi/(c m)); classical equipartition m <v^2> = kB T gives S2 = 2 c kB T and the one-sided S_F = 2 S2 = 4 kB T c. acceleration_floor_eq gives 4 kB T w0 /(m Q) via c = m w0 / Q. Equipartition and white-spectrum are premises; classical limit only, not the quantum fluctuation-dissipation form.",
2217
+ coverage: "covers its statement only",
2218
+ leanProof: "complete",
2219
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2220
+ nested: [],
2221
+ },
2222
+ {
2223
+ key: "be-179",
2224
+ bridgeId: "be-179",
2225
+ kind: "bridge",
2226
+ theorem: "PhysJS.BolometerNep.nep_eq",
2227
+ file: "BolometerNep.lean",
2228
+ covers: "the thermal Langevin equation C dT' + G dT = P_n with white two-sided density S2 gives <dT^2> = S2/(2 G C) (Lorentzian integral); canonical energy variance <dE^2> = kB T^2 C with dE = C dT gives <dT^2> = kB T^2 / C, so S2 = 2 kB T^2 G and the one-sided NEP^2 = 4 kB T^2 G. The canonical energy variance and white spectrum are premises; single thermal link, thermal-fluctuation limit only (no Johnson or photon noise).",
2229
+ coverage: "covers its statement only",
2230
+ leanProof: "complete",
2231
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2232
+ nested: [],
2233
+ },
2234
+ {
2235
+ key: "be-180",
2236
+ bridgeId: "be-180",
2237
+ kind: "bridge",
2238
+ theorem: "PhysJS.PeltierMaxDeltaT.max_delta_t_eq",
2239
+ file: "PeltierMaxDeltaT.lean",
2240
+ covers: "the cold-side heat Qc(I) = S Tc I - I^2 R/2 - K dT is a concave quadratic with stationary current I* = S Tc/R and maximum S^2 Tc^2/(2R) - K dT; with Z = S^2/(R K), heat can be pumped iff dT <= (1/2) Z Tc^2, with equality at the zero-load edge. Constant properties, Peltier + half-Joule + conduction only; not multistage and not temperature-dependent S.",
2241
+ coverage: "covers its statement only",
2242
+ leanProof: "complete",
2243
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2244
+ nested: [],
2245
+ },
2246
+ {
2247
+ key: "be-181",
2248
+ bridgeId: "be-181",
2249
+ kind: "bridge",
2250
+ theorem: "PhysJS.HarvesterPower.harvester_eq",
2251
+ file: "HarvesterPower.lean",
2252
+ covers: "the steady state z = a cos(wt) + b sin(wt) of m z'' + c z' + k z = m A cos(wt) gives a^2 + b^2 = (mA)^2/((k - m w^2)^2 + (c w)^2); at resonance the cycle-averaged dissipation (1/2) c_e w^2 (a^2+b^2) (proved as an integral over one period) with c_e = 2 m wn ze, c_m = 2 m wn zm yields P = m ze A^2 / (4 wn (ze+zm)^2), and at ze = zm P = m A^2 / (16 zm wn). matched_is_max proves ze = zm maximizes it. Mechanical power into the electrical damper, not rectified circuit-load power.",
2253
+ coverage: "covers its statement only",
2254
+ leanProof: "complete",
2255
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2256
+ nested: [],
2257
+ },
2258
+ {
2259
+ key: "be-182",
2260
+ bridgeId: "be-182",
2261
+ kind: "bridge",
2262
+ theorem: "PhysJS.MeanFreePath.mean_free_path_eq",
2263
+ file: "MeanFreePath.lean",
2264
+ covers: "from p_F = hbar k_F = m* v_F, free flight dx/dt = v_F over tau and E_F = hbar^2 k_F^2/(2m*), proves l = v_F tau = hbar k_F tau/m*, k_F l = 2 E_F tau/hbar and (1 <= k_F l iff hbar/tau <= 2 E_F). It is not a derivation of tau or of anisotropic bands.",
2265
+ coverage: "covers its statement only",
2266
+ leanProof: "complete",
2267
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2268
+ nested: [],
2269
+ },
2270
+ {
2271
+ key: "be-183",
2272
+ bridgeId: "be-183",
2273
+ kind: "bridge",
2274
+ theorem: "PhysJS.BlochOscillation.bloch_frequency_eq",
2275
+ file: "BlochOscillation.lean",
2276
+ covers: "from hbar dk/dt = eE (HasDerivAt) and one zone traversal k(T)=k(0)+2pi/a with omega T = 2pi, proves T = 2 pi hbar/(eEa) and omega_B = eEa/hbar. It is not a derivation of the band, of omega_B tau >> 1 or of the absence of Zener tunnelling.",
2277
+ coverage: "covers its statement only",
2278
+ leanProof: "complete",
2279
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2280
+ nested: [],
2281
+ },
2282
+ {
2283
+ key: "be-184",
2284
+ bridgeId: "be-184",
2285
+ kind: "bridge",
2286
+ theorem: "PhysJS.PippardCoherence.pippard_eq",
2287
+ file: "PippardCoherence.lean",
2288
+ covers: "from xi0 = hbar v_F/(pi Delta), l = v_F tau and the additive energy-scale premise hbar v_F/xi = pi Delta + hbar/(alpha tau), proves 1/xi = 1/xi0 + 1/(alpha l), the closed form xi = xi0 alpha l/(xi0 + alpha l) and xi <= min(xi0, alpha l). alpha is a convention-dependent positive hypothesis and the additivity premise and BCS xi0 are not derived.",
2289
+ coverage: "covers its statement only",
2290
+ leanProof: "complete",
2291
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2292
+ nested: [],
2293
+ },
2294
+ {
2295
+ key: "be-185",
2296
+ bridgeId: "be-185",
2297
+ kind: "bridge",
2298
+ theorem: "PhysJS.ClausiusMossotti.clausius_mossotti_eq",
2299
+ file: "ClausiusMossotti.lean",
2300
+ covers: "from P = eps0 (eps_r - 1) E, P = N alpha E_loc and the Lorentz local field E_loc = E + P/(3 eps0), proves (eps_r - 1)/(eps_r + 2) = N alpha/(3 eps0). It is not a derivation of the Lorentz field, of alpha, or a statement for polar or anisotropic media.",
2301
+ coverage: "covers its statement only",
2302
+ leanProof: "complete",
2303
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2304
+ nested: [],
2305
+ },
2306
+ {
2307
+ key: "be-186",
2308
+ bridgeId: "be-186",
2309
+ kind: "bridge",
2310
+ theorem: "PhysJS.DepairingCurrent.depairing_eq",
2311
+ file: "DepairingCurrent.lean",
2312
+ covers: "from the GL supercurrent J(q) = (Phi0/(2 pi mu0 lambda^2)) q (1 - xi^2 q^2) (premise), proves dJ/dq = 0 at q* = 1/(sqrt3 xi), J(q) <= J(q*) for all q >= 0, and J(q*) = Phi0/(3 sqrt3 pi mu0 lambda^2 xi); also J_d = (2 sqrt2/(3 sqrt3)) B_c/(mu0 lambda) for B_c = Phi0/(2 sqrt2 pi lambda xi). The GL J(q) and B_c are inputs.",
2313
+ coverage: "covers its statement only",
2314
+ leanProof: "complete",
2315
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2316
+ nested: [],
2317
+ },
2318
+ {
2319
+ key: "be-187",
2320
+ bridgeId: "be-187",
2321
+ kind: "bridge",
2322
+ theorem: "PhysJS.SchottkyMott.schottky_mott_eq",
2323
+ file: "SchottkyMott.lean",
2324
+ covers: "from a common-vacuum-level ledger E_FM = E_vac - Phi_M, E_c = E_vac + delta - chi_s, phi_Bn = E_c - E_FM and the ideal premise delta = 0, proves phi_Bn = Phi_M - chi_s; also phi_Bn = Phi_M - chi_s + delta, pinned_not_ideal for delta != 0 and phi_Bp + phi_Bn = E_g. It is not a model of interface states or the pinning slope.",
2325
+ coverage: "covers its statement only",
2326
+ leanProof: "complete",
2327
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2328
+ nested: [],
2329
+ },
2330
+ {
2331
+ key: "be-188",
2332
+ bridgeId: "be-188",
2333
+ kind: "bridge",
2334
+ theorem: "PhysJS.WannierExciton.exciton_eq",
2335
+ file: "WannierExciton.lean",
2336
+ covers: "from the 1s trial energy E(a) = hbar^2/(2 mu a^2) - k/a with k = k0/eps_r (premise), proves the unique minimizer a = hbar^2/(mu k), binding energy mu k^2/(2 hbar^2), and hence -E_X = (mu/m) Ry/eps_r^2, a_X = a_B eps_r m/mu and -E_X = k/(2 a_X). It is not a band-structure calculation and uses no GaAs numbers.",
2337
+ coverage: "covers its statement only",
2338
+ leanProof: "complete",
2339
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2340
+ nested: [],
2341
+ },
2342
+ {
2343
+ key: "be-189",
2344
+ bridgeId: "be-189",
2345
+ kind: "bridge",
2346
+ theorem: "PhysJS.ChargingEnergy.charging_energy_eq",
2347
+ file: "ChargingEnergy.lean",
2348
+ covers: "from constant C and the work integral E_C = integral_0^e (q/C) dq (proved), gives E_C = e^2/(2C); also addition_energy (2N+1) E_C and thermal_ratio kBT/E_C = 2C kBT/e^2. The regime kBT << E_C is not a theorem.",
2349
+ coverage: "covers its statement only",
2350
+ leanProof: "complete",
2351
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2352
+ nested: [],
2353
+ },
2354
+ {
2355
+ key: "be-190",
2356
+ bridgeId: "be-190",
2357
+ kind: "bridge",
2358
+ theorem: "PhysJS.WeakLocalization.weak_localization_eq",
2359
+ file: "WeakLocalization.lean",
2360
+ covers: "from the 2D return probability 1/(4 pi D t) and the Cooperon weight Delta_sigma = -(2e^2 D/(pi hbar)) integral_tau^tau_phi P dt (convention-dependent hypothesis), proves integral dt/t = ln(tau_phi/tau) and Delta_sigma = -(e^2/(pi h)) ln(tau_phi/tau) with h = 2 pi hbar, negative and decreasing in tau_phi. The weight, spin counting and symmetry class are hypotheses; no antilocalization.",
2361
+ coverage: "covers its statement only",
2362
+ leanProof: "complete",
2363
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2364
+ nested: [],
2365
+ },
2366
+ {
2367
+ key: "be-191",
2368
+ bridgeId: "be-191",
2369
+ kind: "bridge",
2370
+ theorem: "PhysJS.ThermalConductanceQuantum.thermal_conductance_eq",
2371
+ file: "ThermalConductanceQuantum.lean",
2372
+ covers: "from the 1D channel heat current J = integral h nu n_B dnu, kappa = integral h nu (dn/dT) dnu (HasDerivAt of the Bose occupation proved) and the proved Bose integral integral_0^inf x^2 e^x/(e^x-1)^2 dx = pi^2/3, proves kappa = pi^2 kB^2 T/(3h). The exchange of d/dT with the integral, adiabatic contacts and mode counting are premises.",
2373
+ coverage: "covers its statement only",
2374
+ leanProof: "complete",
2375
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2376
+ nested: [],
2377
+ },
2378
+ {
2379
+ key: "be-192",
2380
+ bridgeId: "be-192",
2381
+ kind: "bridge",
2382
+ theorem: "PhysJS.KondoTemperature.kondo_eq",
2383
+ file: "KondoTemperature.lean",
2384
+ covers: "from the poor-man's-scaling flow dg/dl = g^2 - g^3/2 (hypothesis) on 0<g<2 with a strong-coupling reference g1, proves k_B T_K = D0 K(g1) sqrt(g0/(1-g0/2)) exp(-1/g0), K = exp(-Phi(g1)); the exponent and sqrt(g) are derived, K(g1) depends on the reference coupling (K_injective) so the catalog prefactor 1 is a convention hypothesis. The flow and its coefficients are not derived from the Kondo Hamiltonian.",
2385
+ coverage: "covers its statement only",
2386
+ leanProof: "complete",
2387
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2388
+ nested: [],
2389
+ },
2390
+ {
2391
+ key: "be-193",
2392
+ bridgeId: "be-193",
2393
+ kind: "bridge",
2394
+ theorem: "PhysJS.SweetParker.inflow_eq",
2395
+ file: "SweetParker.lean",
2396
+ covers: "from mass conservation v_in L = v_A δ and diffusion balance v_in = η/δ with outflow at v_A, v_in = v_A S^(-1/2) with S = L v_A/η (rpow and 1/sqrt forms), plus sub-Alfvenic and wrong-power separations. Not a proof that the outflow is v_A, or that real reconnection is this slow.",
2397
+ coverage: "covers its statement only",
2398
+ leanProof: "complete",
2399
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2400
+ nested: [],
2401
+ },
2402
+ {
2403
+ key: "be-194",
2404
+ bridgeId: "be-194",
2405
+ kind: "bridge",
2406
+ theorem: "PhysJS.SedovTaylor.radius_eq",
2407
+ file: "SedovTaylor.lean",
2408
+ covers: "the mass/length/time exponent system for R = ξ E^a t^b ρ^c has the unique solution (1/5, 2/5, -1/5), giving R = ξ (E t²/ρ)^(1/5); also dR/dt = (2/5) R/t. The similarity constant ξ(γ) is a hypothesis (units leave it free). Not the energy integral.",
2409
+ coverage: "covers its statement only",
2410
+ leanProof: "complete",
2411
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2412
+ nested: [],
2413
+ },
2414
+ {
2415
+ key: "be-195",
2416
+ bridgeId: "be-195",
2417
+ kind: "bridge",
2418
+ theorem: "PhysJS.StrongShock.compression_eq",
2419
+ file: "StrongShock.lean",
2420
+ covers: "from the Rankine-Hugoniot mass, momentum and energy laws for an ideal gas with upstream pressure p1 = 0 (the M -> infinity limit as hypothesis), (rho2 - rho1)((g-1)rho2 - (g+1)rho1) = 0, so a compressive shock has rho2/rho1 = (g+1)/(g-1); equals 4 at g = 5/3. Not the finite-Mach ratio, a magnetized shock, or the entropy condition.",
2421
+ coverage: "covers its statement only",
2422
+ leanProof: "complete",
2423
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2424
+ nested: [],
2425
+ },
2426
+ {
2427
+ key: "be-196",
2428
+ bridgeId: "be-196",
2429
+ kind: "bridge",
2430
+ theorem: "PhysJS.BohmDiffusion.bohm_eq",
2431
+ file: "BohmDiffusion.lean",
2432
+ covers: "with the empirical Bohm coefficient c_B = 1/16 taken as a hypothesis, D_B = k_B T/(16 e B) = c_B v_th²/ω_c, and D_B/D_classical = (1+α²)/(16 α) against the be-123 classical coefficient. Not a derivation of 1/16.",
2433
+ coverage: "covers its statement only",
2434
+ leanProof: "complete",
2435
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2436
+ nested: [],
2437
+ },
2438
+ {
2439
+ key: "be-197",
2440
+ bridgeId: "be-197",
2441
+ kind: "bridge",
2442
+ theorem: "PhysJS.BondiHoyle.radius_eq",
2443
+ file: "BondiHoyle.lean",
2444
+ covers: "with the capture radius defined by escape speed squared 2GM/r equal to v² + c_s², r = 2GM/(v²+c_s²); at rest 2GM/c_s², which is four times the be-118 Parker radius (reuses ParkerCritical.critical_radius). Not an accretion rate; the quadrature sum and factor 2 are definitional.",
2445
+ coverage: "covers its statement only",
2446
+ leanProof: "complete",
2447
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2448
+ nested: [],
2449
+ },
2450
+ {
2451
+ key: "be-198",
2452
+ bridgeId: "be-198",
2453
+ kind: "bridge",
2454
+ theorem: "PhysJS.Stromgren.radius_eq",
2455
+ file: "Stromgren.lean",
2456
+ covers: "from ionization balance Q = (4π/3) R³ n² α_B, R³ = 3Q/(4π α_B n²) and R = (3Q/(4π α_B n²))^(1/3); R(8Q) = 2R. α_B (case B) is a hypothesis. Not a numerical radius or a recombination coefficient.",
2457
+ coverage: "covers its statement only",
2458
+ leanProof: "complete",
2459
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2460
+ nested: [],
2461
+ },
2462
+ {
2463
+ key: "be-199",
2464
+ bridgeId: "be-199",
2465
+ kind: "bridge",
2466
+ theorem: "PhysJS.DispersionDelay.delay_eq",
2467
+ file: "DispersionDelay.lean",
2468
+ covers: "group velocity v_g = c sqrt(1 - ω_p²/ω²) from the cold-plasma dispersion relation; uniform-slab delay bracketed between the leading term and that term over (1-x); and the leading delay integral gives Δt = e²/(8π² ε0 m_e c) DM/ν² with ω_p² = n e²/(ε0 m_e). Not the 4.149 ms GHz² decimal, scattering or a magnetic field.",
2469
+ coverage: "covers its statement only",
2470
+ leanProof: "complete",
2471
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2472
+ nested: [],
2473
+ },
2474
+ {
2475
+ key: "be-200",
2476
+ bridgeId: "be-200",
2477
+ kind: "bridge",
2478
+ theorem: "PhysJS.FaradayRotation.rotation_eq",
2479
+ file: "FaradayRotation.lean",
2480
+ covers: "for R/L Stix indices n²=1-X/(1∓Y) (exact n_R²-n_L² = -2XY/(1-Y²)), under the quasi-longitudinal premise k_L - k_R = ω_p² ω_c/(c ω²), and Δχ = ½∫(k_L-k_R)dl gives Δχ = RM λ² with RM = e³/(8π² ε0 m_e² c³) ∫ n B_par dl; odd in B_par. Not the Appleton-Hartree expansion or the decimal 0.812.",
2481
+ coverage: "covers its statement only",
2482
+ leanProof: "complete",
2483
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2484
+ nested: [],
2485
+ },
2486
+ {
2487
+ key: "be-201",
2488
+ bridgeId: "be-201",
2489
+ kind: "bridge",
2490
+ theorem: "PhysJS.LarmorRadiation.larmor_eq",
2491
+ file: "LarmorRadiation.lean",
2492
+ covers: "from the far-zone field E = q a sinθ/(4π ε0 c² r), Poynting flux ε0 c E² and integration over the sphere with ∫ sin³ = 4/3, P = q² a²/(6π ε0 c³); also cyclotron power with a = ω_c v_perp. Not a derivation of the radiation field or radiation reaction.",
2493
+ coverage: "covers its statement only",
2494
+ leanProof: "complete",
2495
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2496
+ nested: [],
2497
+ },
2498
+ {
2499
+ key: "be-202",
2500
+ bridgeId: "be-202",
2501
+ kind: "bridge",
2502
+ theorem: "PhysJS.Bremsstrahlung.emissivity_eq",
2503
+ file: "Bremsstrahlung.lean",
2504
+ covers: "from the Born-level spectral emissivity with a constant Gaunt factor, the photon cutoff ħω <= ½ m v² (where ħ enters) and the Maxwellian mean speed, P = (16/(3ħ)) (e²/4πε0)³/(m c³) sqrt(2π k_B T/(3m)) Z² n_e n_i g; dimension vector (1,-1,-3), and dropping ħ gives (2,1,-4). Not the spectral emissivity, the value of g, or the Maxwell mean speed.",
2505
+ coverage: "covers its statement only",
2506
+ leanProof: "complete",
2507
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2508
+ nested: [],
2509
+ },
2510
+ {
2511
+ key: "be-203",
2512
+ bridgeId: "be-203",
2513
+ kind: "bridge",
2514
+ theorem: "PhysJS.CriticalIonization.critical_velocity_eq",
2515
+ file: "CriticalIonization.lean",
2516
+ covers: "from the energy condition ½ m_n v² = e φ_i, v = sqrt(2 e φ_i/m_n), the threshold iff, and a 51.0-51.1 km/s bracket for hydrogen. Scope-limited: that the condition is an instability threshold is not proved.",
2517
+ coverage: "covers its statement only",
2518
+ leanProof: "complete",
2519
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2520
+ nested: [],
2521
+ },
2522
+ {
2523
+ key: "be-204",
2524
+ bridgeId: "be-204",
2525
+ kind: "bridge",
2526
+ theorem: "PhysJS.LmtdCounterflow.lmtd_eq",
2527
+ file: "LmtdCounterflow.lean",
2528
+ covers: "from the steady counterflow stream equations C_h dT_h/dx = -a(T_h-T_c), C_c dT_c/dx = -a(T_h-T_c) on [0,L] (HasDerivAt premises, constant U A = aL), the local difference decays as exp(-kappa x), the stream energy balance follows from the same ODEs, and the duty Q = C_h(T_h(0)-T_h(L)) equals U A (dT1-dT2)/ln(dT1/dT2); the balanced case C_h = C_c is included with lmtd x x = x. Not a derivation of U; constant heat capacities, no phase change or losses.",
2529
+ coverage: "covers its statement only",
2530
+ leanProof: "complete",
2531
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2532
+ nested: [],
2533
+ },
2534
+ {
2535
+ key: "be-205",
2536
+ bridgeId: "be-205",
2537
+ kind: "bridge",
2538
+ theorem: "PhysJS.EpsilonNtu.eps_ntu_eq",
2539
+ file: "EpsilonNtu.lean",
2540
+ covers: "from the same steady counterflow stream ODEs (premises HasDerivAt on [0,L], U A = aL), the terminal temperatures expressed through epsilon = Q/(C_min(T_h,in - T_c,in)) and the exponential decay of the local difference give epsilon = (1-E)/(1-C_r E), E = exp(-NTU(1-C_r)), for C_r < 1 with either stream as C_min; eps_ntu_balanced gives NTU/(1+NTU) at C_r = 1. Not a derivation of U; constant heat capacity rates, no phase change.",
2541
+ coverage: "covers its statement only",
2542
+ leanProof: "complete",
2543
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2544
+ nested: [],
2545
+ },
2546
+ {
2547
+ key: "be-206",
2548
+ bridgeId: "be-206",
2549
+ kind: "bridge",
2550
+ theorem: "PhysJS.BlasiusFriction.darcy_blasius_eq",
2551
+ file: "BlasiusFriction.lean",
2552
+ covers: "the pipe-segment force balance dp (pi D^2/4) = tau_w (pi D L) with tau_w = f rho v^2/8 gives dp = f (L/D) rho v^2/2; the Blasius law f = c Re^(-1/4) is taken as an empirical hypothesis and implies dp = (c/2) rho^(3/4) mu^(1/4) v^(7/4) L D^(-5/4). The constant 0.316 and the exponent -1/4 are not derived; fully developed smooth-pipe flow only.",
2553
+ coverage: "covers its statement only",
2554
+ leanProof: "complete",
2555
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2556
+ nested: [],
2557
+ },
2558
+ {
2559
+ key: "be-207",
2560
+ bridgeId: "be-207",
2561
+ kind: "bridge",
2562
+ theorem: "PhysJS.ErgunEquation.ergun_eq",
2563
+ file: "ErgunEquation.lean",
2564
+ covers: "from the bed momentum-loss form dp/L = f_p (rho v^2/d)(1-eps)/eps^3 with the viscous-plus-inertial friction law f_p = k1/Re_p + k2 and Re_p = rho v d/(mu(1-eps)), the two-term Ergun pressure gradient follows; viscous_dominates gives the crossover Re_p = k1/k2 and ergun_numbers evaluates 64062.5 Pa/m for 3 mm beads. The constants k1 = 150 and k2 = 1.75 are empirical hypotheses, not derived.",
2565
+ coverage: "covers its statement only",
2566
+ leanProof: "complete",
2567
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2568
+ nested: [],
2569
+ },
2570
+ {
2571
+ key: "be-208",
2572
+ bridgeId: "be-208",
2573
+ kind: "bridge",
2574
+ theorem: "PhysJS.BraytonCycle.brayton_eq",
2575
+ file: "BraytonCycle.lean",
2576
+ covers: "from isentropic legs T2/T1 = T3/T4 = r_p^((gamma-1)/gamma) and isobaric heats Q_in = c_p(T3-T2), Q_out = c_p(T4-T1), eta = 1 - r_p^((1-gamma)/gamma); poisson_ratio proves the isentropic temperature ratio from p V^gamma = const and p V = kT. Constant gamma and c_p, no losses; not the Otto exponent (brayton_ne_otto).",
2577
+ coverage: "covers its statement only",
2578
+ leanProof: "complete",
2579
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2580
+ nested: [],
2581
+ },
2582
+ {
2583
+ key: "be-209",
2584
+ bridgeId: "be-209",
2585
+ kind: "bridge",
2586
+ theorem: "PhysJS.LangmuirIsotherm.langmuir_eq",
2587
+ file: "LangmuirIsotherm.lean",
2588
+ covers: "the steady site balance k_a P (1-theta) = k_d theta with K = k_a/k_d gives theta = K P/(1+K P); relaxation_eq solves dtheta/dt = k_a P(1-theta) - k_d theta on [0,T] so the isotherm is the exponential attractor. One site per molecule, no interaction, single layer; k_a, k_d are inputs.",
2589
+ coverage: "covers its statement only",
2590
+ leanProof: "complete",
2591
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2592
+ nested: [],
2593
+ },
2594
+ {
2595
+ key: "be-210",
2596
+ bridgeId: "be-210",
2597
+ kind: "bridge",
2598
+ theorem: "PhysJS.ButlerVolmer.butler_volmer_eq",
2599
+ file: "ButlerVolmer.lean",
2600
+ covers: "from Arrhenius anodic and cathodic currents with barriers shifted by alpha e eta and (1-alpha) e eta and equal exchange currents i0 at eta = 0, i = i0[exp(alpha e eta/k_B T) - exp(-(1-alpha) e eta/k_B T)]; linear_response gives slope i0 e/(k_B T) at eta = 0, sinh_form the alpha = 1/2 case, sign_of_current the sign of i. i0 and alpha are inputs; no mass-transfer limit; the Nernst limit (be-151) is not proved here.",
2601
+ coverage: "covers its statement only",
2602
+ leanProof: "complete",
2603
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2604
+ nested: [],
2605
+ },
2606
+ {
2607
+ key: "be-211",
2608
+ bridgeId: "be-211",
2609
+ kind: "bridge",
2610
+ theorem: "PhysJS.DebyeHuckel.lnGamma_eq",
2611
+ file: "DebyeHuckel.lean",
2612
+ covers: "linearising the Boltzmann charge density with electroneutrality gives kappa^2 = 2 N_A e^2 I/(eps k_B T) (kappa_sq_eq); phi = q exp(-kappa r)/(4 pi eps r) solves the radial linearised Poisson-Boltzmann equation (screened_coulomb_solves); the finite self-potential -q kappa/(4 pi eps) integrated over the charging path from 0 to z e gives k_B T ln gamma = -(z e)^2 kappa/(8 pi eps). Dilute point ions; ln gamma = work/(k_B T) is a definitional hypothesis; not an extended law.",
2613
+ coverage: "covers its statement only",
2614
+ leanProof: "complete",
2615
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2616
+ nested: [],
2617
+ },
2618
+ {
2619
+ key: "be-212",
2620
+ bridgeId: "be-212",
2621
+ kind: "bridge",
2622
+ theorem: "PhysJS.KelvinDroplet.kelvin_laplace_eq",
2623
+ file: "KelvinDroplet.lean",
2624
+ covers: "virtual work on a sphere (dV/dr = 4 pi r^2, dA/dr = 8 pi r, both proved) gives the Laplace pressure 2 gamma/r; equal chemical potentials of an incompressible liquid and an ideal vapor give k_B T ln(P/P0) = 2 gamma V_m/r + V_m(P-P0) exactly, and the Kelvin form ln(P/P0) = 2 gamma V_m/(r k_B T) once the Poynting term V_m(P-P0) is dropped as an explicit hypothesis. Bulk surface tension, ideal vapor.",
2625
+ coverage: "covers its statement only",
2626
+ leanProof: "complete",
2627
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2628
+ nested: [],
2629
+ },
2630
+ {
2631
+ key: "be-213",
2632
+ bridgeId: "be-213",
2633
+ kind: "bridge",
2634
+ theorem: "PhysJS.GasMeanFreePath.mean_free_path_eq",
2635
+ file: "GasMeanFreePath.lean",
2636
+ covers: "the collision cylinder of cross-section pi d^2 with collision rate z = n pi d^2 v_rel, v_rel = sqrt(2) v_bar (hypothesis), n = p/(k_B T) and lambda = v_bar/z give lambda = k_B T/(sqrt(2) pi d^2 p); mean_square_relative_speed proves the algebra <|v1-v2|^2> = 2<v^2>. Dilute hard spheres, Maxwellian speeds; the mean-speed relation v_rel = sqrt(2) v_bar is a hypothesis, not integrated.",
2637
+ coverage: "covers its statement only",
2638
+ leanProof: "complete",
2639
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2640
+ nested: [],
2641
+ },
2642
+ {
2643
+ key: "be-214",
2644
+ bridgeId: "be-214",
2645
+ kind: "bridge",
2646
+ theorem: "PhysJS.GrayBodyExchange.gray_exchange_eq",
2647
+ file: "GrayBodyExchange.lean",
2648
+ covers: "the radiosity balance J = eps sigma T^4 + (1-eps) G with G1 = J2, G2 = J1 and q = J1 - J2 gives q = sigma(T1^4-T2^4)/(1/eps1+1/eps2-1) for 0 < eps <= 1. Infinite parallel diffuse gray plates in vacuum; sigma is an input (be-165 gives its value), absorptivity = emissivity is a hypothesis.",
2649
+ coverage: "covers its statement only",
2650
+ leanProof: "complete",
2651
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2652
+ nested: [],
2653
+ },
2654
+ {
2655
+ key: "be-215",
2656
+ bridgeId: "be-215",
2657
+ kind: "bridge",
2658
+ theorem: "PhysJS.NernstEinsteinConductivity.molar_conductivity_eq",
2659
+ file: "NernstEinsteinConductivity.lean",
2660
+ covers: "zero net flux n u E - D n' = 0 in a Boltzmann profile n' = (z e E/k_B T) n gives the mobility u = z e D/(k_B T); j = z e n u E gives sigma = n z^2 e^2 D/(k_B T); with n = N_A c, F = N_A e, R = N_A k_B, Lambda_m = z^2 F^2 D/(R T). Infinite dilution, no ion pairing; D is an input.",
2661
+ coverage: "covers its statement only",
2662
+ leanProof: "complete",
2663
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2664
+ nested: [],
2665
+ },
2666
+ {
2667
+ key: "be-216",
2668
+ bridgeId: "be-216",
2669
+ kind: "bridge",
2670
+ theorem: "PhysJS.SchwarzschildCircularOrbits.isco_eq",
2671
+ file: "SchwarzschildCircularOrbits.lean",
2672
+ covers: "from the Schwarzschild effective potential V(r)=(1-2m/r)(1+L^2/r^2), m=GM/c^2, proves V'=V''=0 forces r=6m (and L^2=12m^2), and the photon-potential extremum forces r=3m; derivatives computed exactly via HasDerivAt. Premises: non-rotating vacuum, test particle. Not a derivation of the metric; no numerical km values.",
2673
+ coverage: "covers its statement only",
2674
+ leanProof: "complete",
2675
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2676
+ nested: [],
2677
+ },
2678
+ {
2679
+ key: "be-217",
2680
+ bridgeId: "be-217",
2681
+ kind: "bridge",
2682
+ theorem: "PhysJS.BinaryGWPower.power_eq",
2683
+ file: "BinaryGWPower.lean",
2684
+ covers: "from the quadrupole power P=(32/5)(G/c^5) mu^2 a^4 omega^6 (hypothesis), reduced mass, and Kepler omega^2=G(m1+m2)/a^3, derives P=(32/5)G^4 m1^2 m2^2 (m1+m2)/(c^5 a^5). Not a derivation of the 32/5 quadrupole coefficient and not the eccentric factor f(e).",
2685
+ coverage: "covers its statement only",
2686
+ leanProof: "complete",
2687
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2688
+ nested: [],
2689
+ },
2690
+ {
2691
+ key: "be-218",
2692
+ bridgeId: "be-218",
2693
+ kind: "bridge",
2694
+ theorem: "PhysJS.PetersInspiralTime.inspiral_time_eq",
2695
+ file: "PetersInspiralTime.lean",
2696
+ covers: "from E=-G m1 m2/(2a), the quadrupole power (hypothesis) and dE/dt=-P derives da/dt=-(64/5)G^3 m1 m2 (m1+m2)/(c^5 a^3) via HasDerivAt, integrates a^4+Kt=const exactly (zero derivative, constant_of_has_deriv_right_zero), and if a reaches 0 at T proves T=(5/256)c^5 a0^4/(G^3 m1 m2 (m1+m2)). Premises: circular, adiabatic, point masses. Not a derivation of the quadrupole power; Newtonian energy used to a=0.",
2697
+ coverage: "covers its statement only",
2698
+ leanProof: "complete",
2699
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2700
+ nested: [],
2701
+ },
2702
+ {
2703
+ key: "be-219",
2704
+ bridgeId: "be-219",
2705
+ kind: "bridge",
2706
+ theorem: "PhysJS.GeodeticPrecession.geodetic_eq",
2707
+ file: "GeodeticPrecession.lean",
2708
+ covers: "from the weak-field gyroscope rate Omega=(gamma_P+1/2)(GM/(c^2 r^2))v (hypothesis, gamma_P=1 in GR) and circular Kepler v^2=GM/r, derives Omega=(3/2)(GM)^{3/2}/(c^2 r^{5/2}) in rpow form and 3 pi GM/(c^2 r) per orbit. Not a derivation of the rate from the metric; no Lense-Thirring term.",
2709
+ coverage: "covers its statement only",
2710
+ leanProof: "complete",
2711
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2712
+ nested: [],
2713
+ },
2714
+ {
2715
+ key: "be-220",
2716
+ bridgeId: "be-220",
2717
+ kind: "bridge",
2718
+ theorem: "PhysJS.MatterDominatedAge.age_eq",
2719
+ file: "MatterDominatedAge.lean",
2720
+ covers: "from flat Friedmann (a'/a)^2=(8 pi G/3)rho, dust rho a^3=rho0, expanding a with a(0)=0, proves a'^2 a=C, a^{3/2}=(3/2)sqrt(C) t (mean value theorem), H=2/(3t), hence t0=2/(3H0). Premises: flat, matter only, no radiation, no Lambda. A limit relation known to be wrong for our universe; no Gyr value.",
2721
+ coverage: "covers its statement only",
2722
+ leanProof: "complete",
2723
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2724
+ nested: [],
2725
+ },
2726
+ {
2727
+ key: "be-221",
2728
+ bridgeId: "be-221",
2729
+ kind: "bridge",
2730
+ theorem: "PhysJS.HillRadius.hill_eq",
2731
+ file: "HillRadius.lean",
2732
+ covers: "from the rotating-frame net acceleration f(r)=-GM/(a-r)^2+omega^2(a-r), f'(0)=-3 omega^2 (omega^2=GM/a^3, HasDerivAt), the linearised balance Gm/r^2=3 omega^2 r gives r^3=a^3 m/(3M), r=a(m/(3M))^{1/3}. Premises: circular, m<<M, linearised tidal field. Leading-order L1, not exact; no numeric.",
2733
+ coverage: "covers its statement only",
2734
+ leanProof: "complete",
2735
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2736
+ nested: [],
2737
+ },
2738
+ {
2739
+ key: "be-222",
2740
+ bridgeId: "be-222",
2741
+ kind: "bridge",
2742
+ theorem: "PhysJS.BekensteinBound.saturation_eq",
2743
+ file: "BekensteinBound.lean",
2744
+ covers: "the inequality S<=2 pi k R E/(hbar c) is a HYPOTHESIS; proved from premises: a Schwarzschild black hole (S=k c^3 A/(4G hbar), R=r_s, E=Mc^2) saturates it with equality, radius convention R=lambda r_s scales the bound by lambda, the bound is monotone in R and E, and it lies below the horizon-area entropy iff E<=R c^4/(2G). Not a derivation of the bound.",
2745
+ coverage: "covers its statement only",
2746
+ leanProof: "complete",
2747
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2748
+ nested: [],
2749
+ },
2750
+ {
2751
+ key: "be-223",
2752
+ bridgeId: "be-223",
2753
+ kind: "bridge",
2754
+ theorem: "PhysJS.PhotonGasEnergyDensity.energy_density_eq",
2755
+ file: "PhotonGasEnergyDensity.lean",
2756
+ covers: "from mode counting u=I(kT)^4/(pi^2 (hbar c)^3) with the Bose integral I=pi^4/15 (hypothesis) and sigma=pi^2 k^4/(60 hbar^3 c^2), derives u=(pi^2/15)(kT)^4/(hbar c)^3=(4 sigma/c)T^4; photon-number conservation with n=beta T^3 gives T(z)=T0(1+z) and u(z)=u0(1+z)^4. Not a computation of the Bose integral; no 2.725 K value.",
2757
+ coverage: "covers its statement only",
2758
+ leanProof: "complete",
2759
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2760
+ nested: [],
2761
+ },
2762
+ {
2763
+ key: "be-224",
2764
+ bridgeId: "be-224",
2765
+ kind: "bridge",
2766
+ theorem: "PhysJS.EtheringtonReciprocity.etherington_eq",
2767
+ file: "EtheringtonReciprocity.lean",
2768
+ covers: "from photon-number-conserving flux F=L/(4 pi chi^2 (1+z)^2) and s=chi theta/(1+z), derives d_L=(1+z)chi, d_A=chi/(1+z), d_L=(1+z)^2 d_A and surface brightness I_obs=I_em/(1+z)^4. Premises: metric theory, photon number conserved, no absorption. The (1+z)^-2 flux factor is a hypothesis, not derived from the FRW geometry.",
2769
+ coverage: "covers its statement only",
2770
+ leanProof: "complete",
2771
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2772
+ nested: [],
2773
+ },
2774
+ {
2775
+ key: "be-225",
2776
+ bridgeId: "be-225",
2777
+ kind: "bridge",
2778
+ theorem: "PhysJS.SynchrotronCoolingTime.cooling_time_eq",
2779
+ file: "SynchrotronCoolingTime.lean",
2780
+ covers: "from P=(4/3) sigma_T c gamma^2 U_B (hypothesis), U_B=B^2/(2 mu0) and t=gamma m c^2/P, derives t=3 m c/(4 sigma_T gamma U_B)=3 m c mu0/(2 sigma_T gamma B^2); integrates gamma'=-kappa gamma^2 exactly to 1/gamma=1/gamma0+kappa t and proves the halving time equals the cooling time. Not a derivation of the 4/3 coefficient or inverse-Compton losses.",
2781
+ coverage: "covers its statement only",
2782
+ leanProof: "complete",
2783
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2784
+ nested: [],
2785
+ },
2786
+ {
2787
+ key: "be-226",
2788
+ bridgeId: "be-226",
2789
+ kind: "bridge",
2790
+ theorem: "PhysJS.PulsarSpinDownField.pole_field_eq",
2791
+ file: "PulsarSpinDownField.lean",
2792
+ covers: "from Omega=2pi/P, Omega-dot=-2pi Pdot/P^2, energy balance -I Omega Omega-dot=mu0 m^2 Omega^4/(6 pi c^3) (hypothesis) and B_pole=mu0 m/(2 pi R^3), derives B_pole^2=3 mu0 c^3 I P Pdot/(8 pi^3 R^6) (equatorial /32 pi^3). Premises: orthogonal rotator, vacuum dipole, rigid sphere. The report's 8 pi^2 is wrong by sqrt(pi); not a derivation of dipole radiation.",
2793
+ coverage: "covers its statement only",
2794
+ leanProof: "complete",
2795
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2796
+ nested: [],
2797
+ },
2798
+ {
2799
+ key: "be-227",
2800
+ bridgeId: "be-227",
2801
+ kind: "bridge",
2802
+ theorem: "PhysJS.FresnelNormal.reflectance_eq",
2803
+ file: "FresnelNormal.lean",
2804
+ covers: "from continuity of tangential E and H at a planar interface (H = n E/(mu0 c), reflected wave reversed) derives r = (n1-n2)/(n1+n2), t = 2 n1/(n1+n2), R = r^2, T = 4 n1 n2/(n1+n2)^2 and R + T = 1. Lossless non-magnetic dielectrics, normal incidence; not oblique incidence, absorption or thin films.",
2805
+ coverage: "covers its statement only",
2806
+ leanProof: "complete",
2807
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2808
+ nested: [],
2809
+ },
2810
+ {
2811
+ key: "be-228",
2812
+ bridgeId: "be-228",
2813
+ kind: "bridge",
2814
+ theorem: "PhysJS.RayleighCriterion.rayleigh_eq",
2815
+ file: "RayleighCriterion.lean",
2816
+ covers: "with the Airy amplitude 2 J1(x)/x, x = pi D sin(theta)/lambda, and the Rayleigh peak-on-first-zero criterion, theta = (j/pi) lambda/D for j the first zero of J1. J1 is defined by its power series; a zero in (3.8,3.9) is proved (alternating-series bound + IVT), giving 1.2 < j/pi < 1.25; 3.8317/pi is shown within 0.001 of 1.22. Not a derivation of the disc diffraction integral, and j being the first positive zero is a premise.",
2817
+ coverage: "covers its statement only",
2818
+ leanProof: "complete",
2819
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2820
+ nested: [],
2821
+ },
2822
+ {
2823
+ key: "be-229",
2824
+ bridgeId: "be-229",
2825
+ kind: "bridge",
2826
+ theorem: "PhysJS.AbbeResolution.resolution_eq",
2827
+ file: "AbbeResolution.lean",
2828
+ covers: "from the first-order grating equation n sin(theta1) = n sin(theta_i) + lambda/d and both orders lying within the numerical aperture, derives d >= lambda/(2 NA) with equality for symmetric oblique illumination; axial illumination gives d >= lambda/NA. Scalar theory, grating object; not a statement about incoherent or partially coherent imaging in general.",
2829
+ coverage: "covers its statement only",
2830
+ leanProof: "complete",
2831
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2832
+ nested: [],
2833
+ },
2834
+ {
2835
+ key: "be-230",
2836
+ bridgeId: "be-230",
2837
+ kind: "bridge",
2838
+ theorem: "PhysJS.GaussianBeam.rayleigh_range_eq",
2839
+ file: "GaussianBeam.lean",
2840
+ covers: "from the imaginary part of the paraxial beam-parameter relation 1/q = 1/R - i lambda/(pi n w^2) with q = z + i z_R, derives z_R = pi n w0^2/lambda, w^2 = w0^2 (1+(z/z_R)^2) = w0^2 + theta^2 z^2 with theta = lambda/(pi n w0) = w0/z_R, and the far-field limit of w^2/z^2. The q relation is a premise, not derived from the paraxial equation; TEM00, M^2 = 1.",
2841
+ coverage: "covers its statement only",
2842
+ leanProof: "complete",
2843
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2844
+ nested: [],
2845
+ },
2846
+ {
2847
+ key: "be-231",
2848
+ bridgeId: "be-231",
2849
+ kind: "bridge",
2850
+ theorem: "PhysJS.FabryPerot.finesse_eq",
2851
+ file: "FabryPerot.lean",
2852
+ covers: "derives FSR = c/(2nL) from adjacent resonance phases 4 pi n L nu/c = 2 pi m; sums the multiple-reflection geometric series to the Airy function (1-R)^2/((1-R)^2 + 4R sin^2(delta/2)); and from the half-maximum points gets the exact finesse pi/(2 arcsin s), s = (1-R)/(2 sqrt R), which is <= pi sqrt R/(1-R) with line width = FSR/F. Lossless equal mirrors, normal incidence, constant n; not mirror loss or dispersion.",
2853
+ coverage: "covers its statement only",
2854
+ leanProof: "complete",
2855
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2856
+ nested: [],
2857
+ },
2858
+ {
2859
+ key: "be-232",
2860
+ bridgeId: "be-232",
2861
+ kind: "bridge",
2862
+ theorem: "PhysJS.Etendue.etendue_density_eq",
2863
+ file: "Etendue.lean",
2864
+ covers: "differentiating Snell's law n1 sin(th1) = n2 sin(th2(th1)) and multiplying back gives n1^2 cos th1 sin th1 = n2^2 cos th2 sin th2 th2', i.e. the etendue element n^2 dA cos(th) dOmega is conserved at refraction; with power conservation this gives L1/n1^2 = L2/n2^2, and the cone etendue pi A (n sin th)^2. Geometric optics, lossless interface; the exponent 2 is forced (power_two_forced).",
2865
+ coverage: "covers its statement only",
2866
+ leanProof: "complete",
2867
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2868
+ nested: [],
2869
+ },
2870
+ {
2871
+ key: "be-233",
2872
+ bridgeId: "be-233",
2873
+ kind: "bridge",
2874
+ theorem: "PhysJS.SchawlowTownes.linewidth_eq",
2875
+ file: "SchawlowTownes.lean",
2876
+ covers: "from a phase-diffusion model (P = N h nu gamma, gamma = 2 pi dnu_c, spontaneous rate n_sp gamma with n_sp = 1, per-event phase variance <sin^2>/N with the phase average computed = 1/2, Lorentzian width V/(2 pi)) derives dnu = pi h nu dnu_c^2/P. The per-event coefficient is a premise of the model; not a quantum-noise derivation.",
2877
+ coverage: "covers its statement only",
2878
+ leanProof: "complete",
2879
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2880
+ nested: [],
2881
+ },
2882
+ {
2883
+ key: "be-234",
2884
+ bridgeId: "be-234",
2885
+ kind: "bridge",
2886
+ theorem: "PhysJS.LaserThreshold.threshold_gain_eq",
2887
+ file: "LaserThreshold.lean",
2888
+ covers: "from unit round-trip intensity factor R1 R2 exp(2(g - alpha_i)L) = 1 derives g_th = alpha_i + ln(1/(R1 R2))/(2L), and that the factor exceeds 1 exactly for g > g_th; equal mirrors give ln(1/R)/L. Uniform gain, no saturation or scattering; not a prediction of alpha_i or gain.",
2889
+ coverage: "covers its statement only",
2890
+ leanProof: "complete",
2891
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2892
+ nested: [],
2893
+ },
2894
+ {
2895
+ key: "be-235",
2896
+ bridgeId: "be-235",
2897
+ kind: "bridge",
2898
+ theorem: "PhysJS.PhotodiodeResponsivity.responsivity_eq",
2899
+ file: "PhotodiodeResponsivity.lean",
2900
+ covers: "from photon flux P/(h nu), nu = c/lambda, carrier rate eta times flux and current e times rate, derives R = eta e lambda/(h c). eta is an input (0 <= eta <= 1 bound proved); not a derivation of quantum efficiency, no gain or saturation.",
2901
+ coverage: "covers its statement only",
2902
+ leanProof: "complete",
2903
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2904
+ nested: [],
2905
+ },
2906
+ {
2907
+ key: "be-236",
2908
+ bridgeId: "be-236",
2909
+ kind: "bridge",
2910
+ theorem: "PhysJS.PhotonicBandGap.gap_width_eq",
2911
+ file: "PhotonicBandGap.lean",
2912
+ covers: "computes the half trace of the product of two lossless-layer characteristic matrices (cos cos - (1/2)(n1/n2+n2/n1) sin sin), shows for quarter-wave layers it never exceeds 1 and is below -1 exactly for |u| < arcsin c, c = |n1-n2|/(n1+n2), and that the two band edges give (omega_hi - omega_lo)/omega_0 = (4/pi) arcsin c. First gap, normal incidence, lossless infinite stack; the Bloch criterion |1/2 Tr| > 1 as gap is taken as the definition.",
2913
+ coverage: "covers its statement only",
2914
+ leanProof: "complete",
2915
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2916
+ nested: [],
2917
+ },
2918
+ {
2919
+ key: "be-237",
2920
+ bridgeId: "be-237",
2921
+ kind: "bridge",
2922
+ theorem: "PhysJS.PockelsHalfWave.half_wave_eq",
2923
+ file: "PockelsHalfWave.lean",
2924
+ covers: "from the impermeability change Delta(1/n^2) = r E linearised with d(1/n^2)/dn = -2/n^3 (so Delta n = -(1/2) n^3 r E), E = V/d and phase 2 pi |Delta n| L/lambda, derives V_pi = lambda d/(n^3 r L) and Gamma = pi V/V_pi. One axis, one polarisation, first order; r and n are inputs, not derived from the crystal tensor.",
2925
+ coverage: "covers its statement only",
2926
+ leanProof: "complete",
2927
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2928
+ nested: [],
2929
+ },
2930
+ {
2931
+ key: "be-238",
2932
+ bridgeId: "be-238",
2933
+ kind: "bridge",
2934
+ theorem: "PhysJS.DopplerWidth.doppler_fwhm_eq",
2935
+ file: "DopplerWidth.lean",
2936
+ covers: "from the Maxwell line-of-sight profile exp(-m c^2 (nu-nu0)^2/(2 k T nu0^2)) (first-order Doppler shift) shows the half-maximum points are nu0 +- nu0 sqrt(2 k T ln2/(m c^2)) and that the full width is nu0 sqrt(8 k T ln2/(m c^2)). Non-relativistic gas, no collisional or natural broadening.",
2937
+ coverage: "covers its statement only",
2938
+ leanProof: "complete",
2939
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2940
+ nested: [],
2941
+ },
2942
+ {
2943
+ key: "be-239",
2944
+ bridgeId: "be-239",
2945
+ kind: "bridge",
2946
+ theorem: "PhysJS.ElasticWaveSpeeds.pwave_eq",
2947
+ file: "ElasticWaveSpeeds.lean",
2948
+ covers: "a travelling profile f(x-ct) with nonvanishing f'' solves the reduced isotropic Navier-Cauchy equation rho u_tt=(lambda+2G)u_xx with lambda=K-2G/3 only if rho c^2=K+4G/3, so c_p=sqrt((K+4G/3)/rho); swave_eq gives c_s=sqrt(G/rho); also c_s<c_p, fluid limit K/rho, and c_p modulus >= E with equality only at lambda=0 (bar speed is a third speed). Not a derivation of Navier-Cauchy from a stress balance; infinite homogeneous isotropic linear medium.",
2949
+ coverage: "covers its statement only",
2950
+ leanProof: "complete",
2951
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2952
+ nested: [],
2953
+ },
2954
+ {
2955
+ key: "be-240",
2956
+ bridgeId: "be-240",
2957
+ kind: "bridge",
2958
+ theorem: "PhysJS.ModuliRelation.young_eq",
2959
+ file: "ModuliRelation.lean",
2960
+ covers: "from isotropic Hooke sigma=lambda tr(eps)+2G eps with K=lambda+2G/3, the uniaxial-stress test (sigma_yy=sigma_zz=0, E=sigma/eps_xx, nu=-eps_yy/eps_xx) gives E=9KG/(3K+G) and nu=(3K-2G)/(2(3K+G)); stability gives E>0, -1<nu<1/2 for K,G>0. Not a derivation of Hooke's law; linear isotropic solid.",
2961
+ coverage: "covers its statement only",
2962
+ leanProof: "complete",
2963
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2964
+ nested: [],
2965
+ },
2966
+ {
2967
+ key: "be-241",
2968
+ bridgeId: "be-241",
2969
+ kind: "bridge",
2970
+ theorem: "PhysJS.ImpedanceReflection.reflection_eq",
2971
+ file: "ImpedanceReflection.lean",
2972
+ covers: "pressure continuity p_i+p_r=p_t and velocity continuity (p_i-p_r)/Z1=p_t/Z2 for plane waves give p_r/p_i=(Z2-Z1)/(Z2+Z1) and R=I_r/I_i=((Z2-Z1)/(Z2+Z1))^2 with I=p^2/(2Z); energy_balance proves R+T=1. Not oblique incidence, loss or finite thickness.",
2973
+ coverage: "covers its statement only",
2974
+ leanProof: "complete",
2975
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2976
+ nested: [],
2977
+ },
2978
+ {
2979
+ key: "be-242",
2980
+ bridgeId: "be-242",
2981
+ kind: "bridge",
2982
+ theorem: "PhysJS.StokesKirchhoff.attenuation_bounds",
2983
+ file: "StokesKirchhoff.lean",
2984
+ covers: "with the dissipation bracket b=4mu/3+mu_B+kappa(1/cv-1/cp) taken as the hypothesis (rho u_tt=(rho c^2+b d_t)u_xx), the exact solution of k^2(rho c^2 - i omega b)=rho omega^2 at k=a+i alpha gives alpha=alpha0*q with alpha0=omega^2 b/(2 rho c^3), q<=1 and q^2>=1-5eps^2/4 (eps=omega b/(rho c^2)), so the catalog prefactor is the leading term. Not a derivation of the bracket from Navier-Stokes plus heat equation and not a molecular-relaxation result.",
2985
+ coverage: "covers its statement only",
2986
+ leanProof: "complete",
2987
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
2988
+ nested: [],
2989
+ },
2990
+ {
2991
+ key: "be-243",
2992
+ bridgeId: "be-243",
2993
+ kind: "bridge",
2994
+ theorem: "PhysJS.HelmholtzResonator.frequency_eq",
2995
+ file: "HelmholtzResonator.lean",
2996
+ covers: "Newton's law for a rigid neck slug of mass rho A L against the adiabatic cavity stiffness rho c^2 A^2/V, with harmonic motion x=X cos(omega t), forces omega^2=c^2 A/(V L); catalog_form gives f=omega/(2 pi)=(c/2 pi) sqrt(A/(V L)). Not a derivation of the lumped model; cavity small against wavelength, end correction folded into L.",
2997
+ coverage: "covers its statement only",
2998
+ leanProof: "complete",
2999
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
3000
+ nested: [],
3001
+ },
3002
+ {
3003
+ key: "be-244",
3004
+ bridgeId: "be-244",
3005
+ kind: "bridge",
3006
+ theorem: "PhysJS.MachAngle.sin_mu_eq",
3007
+ file: "MachAngle.lean",
3008
+ covers: "the tangent from the source position A=(vT,0) to the wavefront circle |P|=cT (|P|^2=(cT)^2, AP perpendicular to OP) subtends sin mu=|p_y|/|AP|=c/v; no_cone_subsonic shows the tangent needs v>c; mach_two gives mu=pi/6 at v=2c. Not a finite-size source or non-uniform medium.",
3009
+ coverage: "covers its statement only",
3010
+ leanProof: "complete",
3011
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
3012
+ nested: [],
3013
+ },
3014
+ {
3015
+ key: "be-245",
3016
+ bridgeId: "be-245",
3017
+ kind: "bridge",
3018
+ theorem: "PhysJS.MinnaertResonance.frequency_eq",
3019
+ file: "MinnaertResonance.lean",
3020
+ covers: "with linearised liquid inertia rho R0 x''=k x and the polytropic gas law p_g=p R0^(3 gamma) R^(-3 gamma) (stiffness k=-3 gamma p/R0 by gas_stiffness, a HasDerivAt fact), harmonic motion forces omega^2=3 gamma p/(rho R0^2); catalog_form gives f=(1/(2 pi R0)) sqrt(3 gamma p/rho). Not a derivation of the Rayleigh equation; no surface tension, viscosity or radiation damping.",
3021
+ coverage: "covers its statement only",
3022
+ leanProof: "complete",
3023
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
3024
+ nested: [],
3025
+ },
3026
+ {
3027
+ key: "be-246",
3028
+ bridgeId: "be-246",
3029
+ kind: "bridge",
3030
+ theorem: "PhysJS.ZenerDamping.loss_tangent_eq",
3031
+ file: "ZenerDamping.lean",
3032
+ covers: "a single relaxation ODE tau xi'+xi=cos(omega t) (debye_coefficients: A=1/(1+x^2), B=x/(1+x^2)) with sigma=E eps+dE(eps-xi), dE=Delta E, Delta=E alpha^2 T/C_v, gives loss tangent Q^-1=Delta x/(1+(1+Delta)x^2), x=omega tau; debye_error shows the catalog Debye form Delta x/(1+x^2) agrees to first order (0<=D-Q<=Delta D) and debye_peak gives D<=Delta/2 with equality at x=1. Not a derivation of Delta (adiabatic-isothermal modulus difference) or tau from heat conduction.",
3033
+ coverage: "covers its statement only",
3034
+ leanProof: "complete",
3035
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
3036
+ nested: [],
3037
+ },
3038
+ {
3039
+ key: "be-247",
3040
+ bridgeId: "be-247",
3041
+ kind: "bridge",
3042
+ theorem: "PhysJS.PiezoCoupling.coupling_eq",
3043
+ file: "PiezoCoupling.lean",
3044
+ covers: "with the strain-charge constitutive law S=s^E T+dE, D=dT+eps^T E and the energy partition U_e+2U_m+U_d, the energy coupling factor U_m^2/(U_e U_d) equals d^2/(eps^T s^E); clamped_permittivity_eq and open_compliance_eq give eps^S=eps^T(1-k^2), s^D=s^E(1-k^2), and positive stored energy gives k^2<1. Not a derivation of the constitutive law; one mode.",
3045
+ coverage: "covers its statement only",
3046
+ leanProof: "complete",
3047
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
3048
+ nested: [],
3049
+ },
3050
+ {
3051
+ key: "be-248",
3052
+ bridgeId: "be-248",
3053
+ kind: "bridge",
3054
+ theorem: "PhysJS.BrillouinShift.brillouin_eq",
3055
+ file: "BrillouinShift.lean",
3056
+ covers: "phase matching q=k_i-k_s with |k_s|=|k_i|=k=2 pi n/lambda0 gives q=2k sin(theta/2); with Omega=v q and nu=Omega/(2 pi), nu=2 n v sin(theta/2)/lambda0, which is the catalog 2nv/lambda0 at backscatter theta=pi (backscatter_eq); silica_value brackets 11.15 GHz. Not a derivation of Omega=v q or the scattering strength.",
3057
+ coverage: "covers its statement only",
3058
+ leanProof: "complete",
3059
+ axioms: ["propext", "Classical.choice", "Quot.sound"],
3060
+ nested: [],
3061
+ },
3062
+ {
3063
+ key: "be-249",
3064
+ bridgeId: "be-249",
3065
+ kind: "bridge",
3066
+ theorem: "PhysJS.PhotoacousticPressure.photoacoustic_eq",
3067
+ file: "PhotoacousticPressure.lean",
3068
+ covers: "constant-volume heating (Delta T=mu_a F/(rho C_v), p0=beta K_T Delta T) with K_S=K_T C_p/C_v and c^2=K_S/rho gives p0=(beta c^2/C_p) mu_a F, eliminating C_v, K_T, K_S. Not a derivation of the thermodynamic identities, of stress/thermal confinement, or of water's numerical Gruneisen value.",
1561
3069
  coverage: "covers its statement only",
1562
3070
  leanProof: "complete",
1563
3071
  axioms: ["propext", "Classical.choice", "Quot.sound"],
3072
+ nested: [],
1564
3073
  },
1565
3074
  ];
1566
3075
  //# sourceMappingURL=physjs-entries.generated.js.map