@lapxo/obligations 0.4.4 → 0.4.6

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 (212) hide show
  1. package/README.md +42 -3
  2. package/TARGET.bound +147 -4
  3. package/contracts/extension-lineage-participation.json +30 -0
  4. package/contracts/m0-allocation.json +6 -0
  5. package/contracts/m0-binomial-bridge.json +6 -0
  6. package/contracts/m0-diagonal-conditional.json +15 -0
  7. package/contracts/m0-finite-grid.json +6 -0
  8. package/contracts/m0-keff-interval.json +27 -0
  9. package/contracts/m0-limit-diag.json +6 -0
  10. package/contracts/m0-limit-offdiag.json +6 -0
  11. package/contracts/m0-moment-identification.json +42 -0
  12. package/contracts/m0-pair-coincidence.json +6 -0
  13. package/contracts/m1-diagonal-regions.json +45 -0
  14. package/contracts/m1-generator-binomial.json +26 -0
  15. package/contracts/m1-offdiag-limit.json +42 -0
  16. package/contracts/m1-subcauses.json +66 -0
  17. package/contracts/model-collapse-1a.json +16 -0
  18. package/contracts/projection-chain.json +20 -0
  19. package/docs/contracts/experiment1a-public-attribution.md +1 -0
  20. package/docs/contracts/extension-lineage-participation.md +13 -0
  21. package/docs/contracts/installation-046-inputs.md +1 -0
  22. package/docs/contracts/m0-allocation.md +1 -0
  23. package/docs/contracts/m0-binomial-bridge.md +1 -0
  24. package/docs/contracts/m0-diagonal-lindeberg.md +1 -0
  25. package/docs/contracts/m0-diagonal-moments.md +1 -0
  26. package/docs/contracts/m0-diagonal-symmetric.md +1 -0
  27. package/docs/contracts/m0-diagonal-threshold.md +1 -0
  28. package/docs/contracts/m0-finite-grid.md +1 -0
  29. package/docs/contracts/m0-keff-floor-refutation.md +1 -0
  30. package/docs/contracts/m0-keff-interval.md +1 -0
  31. package/docs/contracts/m0-limit-diag.md +1 -0
  32. package/docs/contracts/m0-limit-offdiag.md +1 -0
  33. package/docs/contracts/m0-moment-identification.md +1 -0
  34. package/docs/contracts/m0-pair-coincidence.md +1 -0
  35. package/docs/contracts/m0-refuted-inverses.md +1 -0
  36. package/docs/contracts/m0-wf-floor-refutation.md +1 -0
  37. package/docs/contracts/m1-diagonal-regions.md +1 -0
  38. package/docs/contracts/m1-generator-binomial.md +1 -0
  39. package/docs/contracts/m1-offdiag-limit.md +1 -0
  40. package/docs/contracts/model-collapse-1a.md +11 -0
  41. package/docs/contracts/projection-chain.md +1 -0
  42. package/docs/proofs/floor-limit-diag.proof.json +29 -0
  43. package/package.json +1 -1
  44. package/proofs/definitions-046/declaration.json +11 -0
  45. package/proofs/experiment1a-046/declaration.json +11 -0
  46. package/proofs/m0-045/Obligations045/ConsensusGrid.lean +72 -0
  47. package/proofs/m0-045/Obligations045/M0Coincidence.lean +39 -0
  48. package/proofs/m0-045/Obligations045/M0Diagonal.lean +18 -0
  49. package/proofs/m0-045/Obligations045/M0Limit.lean +134 -0
  50. package/proofs/m0-045/Obligations045/M0Offdiag.lean +171 -0
  51. package/proofs/m0-045/Obligations045.lean +5 -0
  52. package/proofs/m0-045/lake-manifest.json +116 -0
  53. package/proofs/m0-045/lakefile.toml +9 -0
  54. package/proofs/m0-045/lean-toolchain +1 -0
  55. package/proofs/m0-046/BridgeNegatives.lean +23 -0
  56. package/proofs/m0-046/M0Bridge.lean +300 -0
  57. package/proofs/m0-046/Obligations045/ConsensusGrid.lean +72 -0
  58. package/proofs/m0-046/Obligations045/M0Coincidence.lean +39 -0
  59. package/proofs/m0-046/Obligations045/M0Diagonal.lean +18 -0
  60. package/proofs/m0-046/Obligations045/M0Limit.lean +134 -0
  61. package/proofs/m0-046/Obligations045/M0Offdiag.lean +171 -0
  62. package/proofs/m0-046/Obligations045.lean +5 -0
  63. package/proofs/m0-046/lake-manifest.json +116 -0
  64. package/proofs/m0-046/lakefile.toml +14 -0
  65. package/proofs/m0-046/lean-toolchain +1 -0
  66. package/proofs/m0-046-diagonal/BridgeNegatives.lean +23 -0
  67. package/proofs/m0-046-diagonal/M0Bridge.lean +300 -0
  68. package/proofs/m0-046-diagonal/M0Diagonal046.lean +235 -0
  69. package/proofs/m0-046-diagonal/M0Lindeberg046.lean +92 -0
  70. package/proofs/m0-046-diagonal/M0Moments046.lean +295 -0
  71. package/proofs/m0-046-diagonal/M0Threshold046.lean +278 -0
  72. package/proofs/m0-046-diagonal/Obligations045/ConsensusGrid.lean +72 -0
  73. package/proofs/m0-046-diagonal/Obligations045/M0Coincidence.lean +39 -0
  74. package/proofs/m0-046-diagonal/Obligations045/M0Diagonal.lean +18 -0
  75. package/proofs/m0-046-diagonal/Obligations045/M0Limit.lean +134 -0
  76. package/proofs/m0-046-diagonal/Obligations045/M0Offdiag.lean +171 -0
  77. package/proofs/m0-046-diagonal/Obligations045.lean +5 -0
  78. package/proofs/m0-046-diagonal/lake-manifest.json +116 -0
  79. package/proofs/m0-046-diagonal/lakefile.toml +26 -0
  80. package/proofs/m0-046-diagonal/lean-toolchain +1 -0
  81. package/proofs/m0-046-identification/M0Identification046.lean +209 -0
  82. package/proofs/m0-046-identification/Obligations045/M0Coincidence.lean +39 -0
  83. package/proofs/m0-046-identification/lake-manifest.json +116 -0
  84. package/proofs/m0-046-identification/lakefile.toml +12 -0
  85. package/proofs/m0-046-identification/lean-toolchain +1 -0
  86. package/proofs/m0-046-uncertainty/BridgeNegatives.lean +23 -0
  87. package/proofs/m0-046-uncertainty/M0BlockCoverage046.lean +163 -0
  88. package/proofs/m0-046-uncertainty/M0Bridge.lean +300 -0
  89. package/proofs/m0-046-uncertainty/M0Diagonal046.lean +235 -0
  90. package/proofs/m0-046-uncertainty/M0FiniteDiscord046.lean +207 -0
  91. package/proofs/m0-046-uncertainty/M0Interval046.lean +82 -0
  92. package/proofs/m0-046-uncertainty/M0Lindeberg046.lean +92 -0
  93. package/proofs/m0-046-uncertainty/M0Moments046.lean +295 -0
  94. package/proofs/m0-046-uncertainty/M0Threshold046.lean +278 -0
  95. package/proofs/m0-046-uncertainty/Obligations045/ConsensusGrid.lean +72 -0
  96. package/proofs/m0-046-uncertainty/Obligations045/M0Coincidence.lean +39 -0
  97. package/proofs/m0-046-uncertainty/Obligations045/M0Diagonal.lean +18 -0
  98. package/proofs/m0-046-uncertainty/Obligations045/M0Limit.lean +134 -0
  99. package/proofs/m0-046-uncertainty/Obligations045/M0Offdiag.lean +171 -0
  100. package/proofs/m0-046-uncertainty/Obligations045.lean +5 -0
  101. package/proofs/m0-046-uncertainty/lake-manifest.json +116 -0
  102. package/proofs/m0-046-uncertainty/lakefile.toml +35 -0
  103. package/proofs/m0-046-uncertainty/lean-toolchain +1 -0
  104. package/proofs/m1-046-bridge/M0Bridge.lean +300 -0
  105. package/proofs/m1-046-bridge/M1Bridge046.lean +359 -0
  106. package/proofs/m1-046-bridge/Obligations045/M0Limit.lean +134 -0
  107. package/proofs/m1-046-bridge/Obligations045/M0Offdiag.lean +171 -0
  108. package/proofs/m1-046-bridge/lake-manifest.json +116 -0
  109. package/proofs/m1-046-bridge/lakefile.toml +29 -0
  110. package/proofs/m1-046-bridge/lean-toolchain +1 -0
  111. package/proofs/m1-046-diagonal/M0Bridge.lean +300 -0
  112. package/proofs/m1-046-diagonal/M0Diagonal046.lean +235 -0
  113. package/proofs/m1-046-diagonal/M0Lindeberg046.lean +92 -0
  114. package/proofs/m1-046-diagonal/M0Moments046.lean +295 -0
  115. package/proofs/m1-046-diagonal/M0Threshold046.lean +278 -0
  116. package/proofs/m1-046-diagonal/M1Bridge046.lean +359 -0
  117. package/proofs/m1-046-diagonal/M1Diagonal046.lean +334 -0
  118. package/proofs/m1-046-diagonal/M1Offdiag046.lean +270 -0
  119. package/proofs/m1-046-diagonal/Obligations045/M0Limit.lean +134 -0
  120. package/proofs/m1-046-diagonal/Obligations045/M0Offdiag.lean +171 -0
  121. package/proofs/m1-046-diagonal/lake-manifest.json +116 -0
  122. package/proofs/m1-046-diagonal/lakefile.toml +35 -0
  123. package/proofs/m1-046-diagonal/lean-toolchain +1 -0
  124. package/proofs/m1-046-offdiag/M0Bridge.lean +300 -0
  125. package/proofs/m1-046-offdiag/M0Diagonal046.lean +235 -0
  126. package/proofs/m1-046-offdiag/M0Moments046.lean +295 -0
  127. package/proofs/m1-046-offdiag/M1Bridge046.lean +359 -0
  128. package/proofs/m1-046-offdiag/M1Offdiag046.lean +270 -0
  129. package/proofs/m1-046-offdiag/Obligations045/M0Limit.lean +134 -0
  130. package/proofs/m1-046-offdiag/Obligations045/M0Offdiag.lean +171 -0
  131. package/proofs/m1-046-offdiag/lake-manifest.json +116 -0
  132. package/proofs/m1-046-offdiag/lakefile.toml +32 -0
  133. package/proofs/m1-046-offdiag/lean-toolchain +1 -0
  134. package/proofs/projection-chain.md +11 -0
  135. package/protocols/model-collapse-1a.json +108 -0
  136. package/receipts.bound +684 -208
  137. package/samples/laws/definitions/no/sample.json +26 -0
  138. package/samples/laws/definitions/yes/sample.json +12 -0
  139. package/samples/laws/experiment1a/no/sample.json +16 -0
  140. package/samples/laws/experiment1a/yes/sample.json +8 -0
  141. package/samples/laws/m0-allocation/no/sample.json +5 -0
  142. package/samples/laws/m0-allocation/yes/sample.json +7 -0
  143. package/samples/laws/m0-binomial-bridge/no/pairwise-is-not-joint.json +59 -0
  144. package/samples/laws/m0-binomial-bridge/no/sample.json +13 -0
  145. package/samples/laws/m0-binomial-bridge/yes/sample.json +16 -0
  146. package/samples/laws/m0-binomial-bridge/yes/small-binomial-table.json +100 -0
  147. package/samples/laws/m0-diagonal-conditional/no/sample.json +5 -0
  148. package/samples/laws/m0-diagonal-conditional/yes/sample.json +7 -0
  149. package/samples/laws/m0-finite-grid/no/sample.json +5 -0
  150. package/samples/laws/m0-finite-grid/yes/sample.json +7 -0
  151. package/samples/laws/m0-keff-interval/no/sample.json +215 -0
  152. package/samples/laws/m0-keff-interval/yes/api-rows.json +2002 -0
  153. package/samples/laws/m0-keff-interval/yes/sample.json +70 -0
  154. package/samples/laws/m0-limit-diag/no/sample.json +5 -0
  155. package/samples/laws/m0-limit-diag/yes/sample.json +7 -0
  156. package/samples/laws/m0-limit-offdiag/no/sample.json +5 -0
  157. package/samples/laws/m0-limit-offdiag/yes/sample.json +7 -0
  158. package/samples/laws/m0-moment-identification/no/sample.json +47 -0
  159. package/samples/laws/m0-moment-identification/yes/sample.json +97 -0
  160. package/samples/laws/m0-pair-coincidence/no/sample.json +5 -0
  161. package/samples/laws/m0-pair-coincidence/yes/sample.json +7 -0
  162. package/samples/laws/m1-diagonal-regions/no/sample.json +44 -0
  163. package/samples/laws/m1-diagonal-regions/yes/sample.json +45 -0
  164. package/samples/laws/m1-generator-binomial/no/sample.json +21 -0
  165. package/samples/laws/m1-generator-binomial/yes/sample.json +290 -0
  166. package/samples/laws/m1-offdiag-limit/no/sample.json +17 -0
  167. package/samples/laws/m1-offdiag-limit/yes/sample.json +87 -0
  168. package/samples/laws/projection-chain/no/sample.json +26 -0
  169. package/samples/laws/projection-chain/yes/sample.json +25 -0
  170. package/samples/no/installed-artifact.json +2 -2
  171. package/samples/yes/installed-artifact.json +2 -2
  172. package/src/laws/laws.bound +146 -0
  173. package/vectors/laws/a7-t90.json +72 -0
  174. package/vectors/laws/a9-t99.json +110 -0
  175. package/vectors/laws/definitions.native-capture.json +326 -0
  176. package/vectors/laws/definitions.native.json +82 -0
  177. package/vectors/laws/experiment1a-protocol.native-capture.json +391 -0
  178. package/vectors/laws/experiment1a-protocol.native.json +64 -0
  179. package/vectors/laws/experiment1a-public-input.native-capture.json +224 -0
  180. package/vectors/laws/m0-allocation.lean.json +150 -0
  181. package/vectors/laws/m0-allocation.native.json +104 -0
  182. package/vectors/laws/m0-binomial-bridge.lean.json +185 -0
  183. package/vectors/laws/m0-diagonal-lindeberg.lean.json +167 -0
  184. package/vectors/laws/m0-diagonal-moments.lean.json +185 -0
  185. package/vectors/laws/m0-diagonal-symmetric.lean.json +188 -0
  186. package/vectors/laws/m0-diagonal-threshold.lean.json +199 -0
  187. package/vectors/laws/m0-finite-grid.lean.json +144 -0
  188. package/vectors/laws/m0-finite-grid.native.json +104 -0
  189. package/vectors/laws/m0-identification.lean.json +136 -0
  190. package/vectors/laws/m0-identification.native-capture.json +230 -0
  191. package/vectors/laws/m0-keff-interval.json +569 -0
  192. package/vectors/laws/m0-limit-diag.lean.json +141 -0
  193. package/vectors/laws/m0-limit-diag.native.json +108 -0
  194. package/vectors/laws/m0-limit-offdiag.lean.json +143 -0
  195. package/vectors/laws/m0-limit-offdiag.native.json +104 -0
  196. package/vectors/laws/m0-pair-coincidence.lean.json +139 -0
  197. package/vectors/laws/m0-pair-coincidence.native.json +104 -0
  198. package/vectors/laws/m0-uncertainty-blocks.lean.json +201 -0
  199. package/vectors/laws/m0-uncertainty-finite-discord.lean.json +194 -0
  200. package/vectors/laws/m0-uncertainty-interval.lean.json +189 -0
  201. package/vectors/laws/m0-uncertainty.native-capture.json +651 -0
  202. package/vectors/laws/m1-diagonal-partial.lean.json +192 -0
  203. package/vectors/laws/m1-diagonal-partial.native-capture.json +275 -0
  204. package/vectors/laws/m1-generator-binomial.lean.json +162 -0
  205. package/vectors/laws/m1-generator-binomial.native-capture.json +245 -0
  206. package/vectors/laws/m1-offdiag-limit.lean.json +166 -0
  207. package/vectors/laws/m1-offdiag-limit.native-capture.json +260 -0
  208. package/vectors/laws/model-collapse-1a.json +12 -0
  209. package/vectors/laws/projection-chain.json +61 -0
  210. package/vectors/laws/projection-chain.native-capture.json +311 -0
  211. package/vectors/laws/projection-chain.native.json +56 -0
  212. package/vectors/measures/installed-artifact.cli.json +6 -6
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name":"@lapxo/obligations","version":"0.4.4","description":"The algebra of a cell: two poles, origins with phase, eight acts.","type":"module","license":"MIT","author":"Lapxo","repository":{"type":"git","url":"git+https://github.com/Lapxo/obligations.git"},"keywords":["obligations","lattice","provenance"],"sideEffects":false,"engines":{"node":">=22.12"},"exports":{".":{"types":"./dist/lattice/index.d.ts","default":"./dist/lattice/index.js"},"./debit":{"types":"./dist/debit/debit.d.ts","default":"./dist/debit/debit.js"},"./encounter":{"types":"./dist/field/encounter.d.ts","default":"./dist/field/encounter.js"},"./field":{"types":"./dist/field/field.d.ts","default":"./dist/field/field.js"},"./forms":{"types":"./dist/lattice/forms.d.ts","default":"./dist/lattice/forms.js"},"./lattice":{"types":"./dist/lattice/lattice.d.ts","default":"./dist/lattice/lattice.js"},"./measures":{"types":"./dist/measures/index.d.ts","default":"./dist/measures/index.js"},"./packed":{"types":"./dist/debit/packed.d.ts","default":"./dist/debit/packed.js"},"./present":{"types":"./dist/field/present.d.ts","default":"./dist/field/present.js"},"./price":{"types":"./dist/lattice/price/index.d.ts","default":"./dist/lattice/price/index.js"},"./replay":{"types":"./dist/replay.d.ts","default":"./dist/replay.js"},"./shuffle":{"types":"./dist/debit/shuffle.d.ts","default":"./dist/debit/shuffle.js"},"./signatures":{"types":"./dist/field/signatures.d.ts","default":"./dist/field/signatures.js"},"./views/field":{"types":"./dist/views/field.d.ts","default":"./dist/views/field.js"},"./views/product":{"types":"./dist/views/product.d.ts","default":"./dist/views/product.js"},"./package.json":"./package.json"},"files":["dist","README.md","LICENSE","TARGET.bound","receipts.bound","docs/measures.md","samples/measures","vectors/measures","samples/yes/algebra-is-closed.json","samples/yes/field-uses-price-and-debit.json","samples/yes/three-theories-one-algebra.json","src/lattice/index.ts","src/field/motion.ts","samples/yes/installed-artifact.json","samples/no/installed-artifact.json","vectors/measures/installed-artifact.cli.json","docs/img","docs/paper.md","docs/reference.md","docs/learn/in-phase.md","docs/learn/price.md","docs/learn/signature.md","docs/learn/thermometer.md","docs/learn/withdrawal.md","vectors/laws/policy.json","vectors/laws/l7-tolerant-k.json","vectors/laws/l8-phase-defect.json","vectors/laws/l9-mix-loss.json","vectors/laws/implementation-043.json","samples/laws/cofailure-pairs/no/sample.json","samples/laws/cofailure-pairs/yes/sample.json","samples/laws/linage-rest/no/sample.json","samples/laws/linage-rest/yes/sample.json","samples/laws/lineage-ceiling/no/sample.json","samples/laws/lineage-ceiling/yes/sample.json","samples/laws/marginal-information/no/sample.json","samples/laws/marginal-information/yes/sample.json","samples/laws/semilattice/no/sample.json","samples/laws/semilattice/yes/sample.json","vectors/laws/cofailure-pairs.json","vectors/laws/cofailure-pairs.native.json","vectors/laws/coordination.json","vectors/laws/f1/finite-arithmetic.json","vectors/laws/f1/path-witness.json","vectors/laws/helly-comb.json","vectors/laws/helly-comb.lean.json","vectors/laws/linage-rest.native.json","vectors/laws/lineage-ceiling.json","vectors/laws/lineage-ceiling.native.json","vectors/laws/marginal-information.json","vectors/laws/marginal-information.native.json","vectors/laws/meet-semilattice.json","vectors/laws/meet-semilattice.native.json","vectors/laws/resolution-encounters.json","proofs/lineage-ceiling.json","proofs/cofailure-pairs.json","proofs/marginal-information.json","proofs/helly-comb.json","proofs/resolution-encounters.json","proofs/coordination.json","proofs/lean/Obligations/Cell.lean","proofs/lean/Obligations/HellyComb.lean","samples/yes/H1-uncertainty.json","samples/no/H1-uncertainty.json","vectors/laws/f1/path-witness.json","vectors/laws/f1/finite-arithmetic.json"],"scripts":{"build":"tsc --build","test":"node --import ./test/setup.ts --test --test-concurrency=2 test/*.test.ts test/measures/*.test.ts"},"devDependencies":{"@types/node":"^22","typescript":"^5.9.3"}}
1
+ {"name":"@lapxo/obligations","version":"0.4.6","description":"The algebra of a cell: two poles, origins with phase, eight acts.","type":"module","license":"MIT","author":"Lapxo","repository":{"type":"git","url":"git+https://github.com/Lapxo/obligations.git"},"keywords":["obligations","lattice","provenance"],"sideEffects":false,"engines":{"node":">=22.12"},"exports":{".":{"types":"./dist/lattice/index.d.ts","default":"./dist/lattice/index.js"},"./debit":{"types":"./dist/debit/debit.d.ts","default":"./dist/debit/debit.js"},"./encounter":{"types":"./dist/field/encounter.d.ts","default":"./dist/field/encounter.js"},"./field":{"types":"./dist/field/field.d.ts","default":"./dist/field/field.js"},"./forms":{"types":"./dist/lattice/forms.d.ts","default":"./dist/lattice/forms.js"},"./lattice":{"types":"./dist/lattice/lattice.d.ts","default":"./dist/lattice/lattice.js"},"./measures":{"types":"./dist/measures/index.d.ts","default":"./dist/measures/index.js"},"./packed":{"types":"./dist/debit/packed.d.ts","default":"./dist/debit/packed.js"},"./present":{"types":"./dist/field/present.d.ts","default":"./dist/field/present.js"},"./price":{"types":"./dist/lattice/price/index.d.ts","default":"./dist/lattice/price/index.js"},"./replay":{"types":"./dist/replay.d.ts","default":"./dist/replay.js"},"./shuffle":{"types":"./dist/debit/shuffle.d.ts","default":"./dist/debit/shuffle.js"},"./signatures":{"types":"./dist/field/signatures.d.ts","default":"./dist/field/signatures.js"},"./views/field":{"types":"./dist/views/field.d.ts","default":"./dist/views/field.js"},"./views/product":{"types":"./dist/views/product.d.ts","default":"./dist/views/product.js"},"./package.json":"./package.json"},"files":["dist","README.md","LICENSE","TARGET.bound","receipts.bound","docs/measures.md","samples/measures","vectors/measures","samples/yes/algebra-is-closed.json","samples/yes/field-uses-price-and-debit.json","samples/yes/three-theories-one-algebra.json","src/lattice/index.ts","src/field/motion.ts","samples/yes/installed-artifact.json","samples/no/installed-artifact.json","vectors/measures/installed-artifact.cli.json","docs/img","docs/paper.md","docs/reference.md","docs/learn/in-phase.md","docs/learn/price.md","docs/learn/signature.md","docs/learn/thermometer.md","docs/learn/withdrawal.md","vectors/laws/policy.json","vectors/laws/l7-tolerant-k.json","vectors/laws/l8-phase-defect.json","vectors/laws/l9-mix-loss.json","vectors/laws/implementation-043.json","samples/laws/cofailure-pairs/no/sample.json","samples/laws/cofailure-pairs/yes/sample.json","samples/laws/linage-rest/no/sample.json","samples/laws/linage-rest/yes/sample.json","samples/laws/lineage-ceiling/no/sample.json","samples/laws/lineage-ceiling/yes/sample.json","samples/laws/marginal-information/no/sample.json","samples/laws/marginal-information/yes/sample.json","samples/laws/semilattice/no/sample.json","samples/laws/semilattice/yes/sample.json","vectors/laws/cofailure-pairs.json","vectors/laws/cofailure-pairs.native.json","vectors/laws/coordination.json","vectors/laws/f1/finite-arithmetic.json","vectors/laws/f1/path-witness.json","vectors/laws/helly-comb.json","vectors/laws/helly-comb.lean.json","vectors/laws/linage-rest.native.json","vectors/laws/lineage-ceiling.json","vectors/laws/lineage-ceiling.native.json","vectors/laws/marginal-information.json","vectors/laws/marginal-information.native.json","vectors/laws/meet-semilattice.json","vectors/laws/meet-semilattice.native.json","vectors/laws/resolution-encounters.json","proofs/lineage-ceiling.json","proofs/cofailure-pairs.json","proofs/marginal-information.json","proofs/helly-comb.json","proofs/resolution-encounters.json","proofs/coordination.json","proofs/lean/Obligations/Cell.lean","proofs/lean/Obligations/HellyComb.lean","samples/yes/H1-uncertainty.json","samples/no/H1-uncertainty.json","proofs/m0-045/Obligations045/ConsensusGrid.lean","proofs/m0-045/Obligations045/M0Coincidence.lean","proofs/m0-045/Obligations045/M0Diagonal.lean","proofs/m0-045/Obligations045/M0Limit.lean","proofs/m0-045/Obligations045/M0Offdiag.lean","proofs/m0-045/Obligations045.lean","proofs/m0-045/lake-manifest.json","proofs/m0-045/lakefile.toml","proofs/m0-045/lean-toolchain","vectors/laws/m0-allocation.lean.json","contracts/m0-allocation.json","samples/laws/m0-allocation/yes/sample.json","samples/laws/m0-allocation/no/sample.json","vectors/laws/m0-allocation.native.json","docs/contracts/m0-allocation.md","vectors/laws/m0-finite-grid.lean.json","contracts/m0-finite-grid.json","samples/laws/m0-finite-grid/yes/sample.json","samples/laws/m0-finite-grid/no/sample.json","vectors/laws/m0-finite-grid.native.json","docs/contracts/m0-finite-grid.md","vectors/laws/m0-limit-offdiag.lean.json","contracts/m0-limit-offdiag.json","samples/laws/m0-limit-offdiag/yes/sample.json","samples/laws/m0-limit-offdiag/no/sample.json","vectors/laws/m0-limit-offdiag.native.json","docs/contracts/m0-limit-offdiag.md","vectors/laws/m0-limit-diag.lean.json","contracts/m0-limit-diag.json","samples/laws/m0-limit-diag/yes/sample.json","samples/laws/m0-limit-diag/no/sample.json","docs/proofs/floor-limit-diag.proof.json","vectors/laws/m0-limit-diag.native.json","docs/contracts/m0-limit-diag.md","vectors/laws/m0-pair-coincidence.lean.json","contracts/m0-pair-coincidence.json","samples/laws/m0-pair-coincidence/yes/sample.json","samples/laws/m0-pair-coincidence/no/sample.json","vectors/laws/m0-pair-coincidence.native.json","docs/contracts/m0-pair-coincidence.md","vectors/laws/definitions.native.json","contracts/extension-lineage-participation.json","docs/contracts/extension-lineage-participation.md","proofs/definitions-046/declaration.json","src/laws/laws.bound","vectors/laws/a7-t90.json","vectors/laws/a9-t99.json","samples/laws/definitions/yes/sample.json","samples/laws/definitions/no/sample.json","vectors/laws/experiment1a-protocol.native.json","contracts/model-collapse-1a.json","protocols/model-collapse-1a.json","docs/contracts/model-collapse-1a.md","proofs/experiment1a-046/declaration.json","vectors/laws/model-collapse-1a.json","samples/laws/experiment1a/yes/sample.json","samples/laws/experiment1a/no/sample.json","proofs/m0-046/BridgeNegatives.lean","proofs/m0-046/M0Bridge.lean","proofs/m0-046/Obligations045.lean","proofs/m0-046/Obligations045/ConsensusGrid.lean","proofs/m0-046/Obligations045/M0Coincidence.lean","proofs/m0-046/Obligations045/M0Diagonal.lean","proofs/m0-046/Obligations045/M0Limit.lean","proofs/m0-046/Obligations045/M0Offdiag.lean","proofs/m0-046/lake-manifest.json","proofs/m0-046/lakefile.toml","proofs/m0-046/lean-toolchain","vectors/laws/m0-binomial-bridge.lean.json","contracts/m0-binomial-bridge.json","docs/contracts/m0-binomial-bridge.md","samples/laws/m0-binomial-bridge/yes/sample.json","samples/laws/m0-binomial-bridge/no/sample.json","samples/laws/m0-binomial-bridge/yes/small-binomial-table.json","samples/laws/m0-binomial-bridge/no/pairwise-is-not-joint.json","contracts/m0-diagonal-conditional.json","proofs/m0-046-diagonal/BridgeNegatives.lean","proofs/m0-046-diagonal/M0Bridge.lean","proofs/m0-046-diagonal/M0Diagonal046.lean","proofs/m0-046-diagonal/M0Lindeberg046.lean","proofs/m0-046-diagonal/M0Moments046.lean","proofs/m0-046-diagonal/M0Threshold046.lean","proofs/m0-046-diagonal/Obligations045.lean","proofs/m0-046-diagonal/Obligations045/ConsensusGrid.lean","proofs/m0-046-diagonal/Obligations045/M0Coincidence.lean","proofs/m0-046-diagonal/Obligations045/M0Diagonal.lean","proofs/m0-046-diagonal/Obligations045/M0Limit.lean","proofs/m0-046-diagonal/Obligations045/M0Offdiag.lean","proofs/m0-046-diagonal/lake-manifest.json","proofs/m0-046-diagonal/lakefile.toml","proofs/m0-046-diagonal/lean-toolchain","samples/laws/m0-diagonal-conditional/no/sample.json","samples/laws/m0-diagonal-conditional/yes/sample.json","vectors/laws/m0-diagonal-lindeberg.lean.json","vectors/laws/m0-diagonal-moments.lean.json","vectors/laws/m0-diagonal-symmetric.lean.json","vectors/laws/m0-diagonal-threshold.lean.json","proofs/m0-046-identification/M0Identification046.lean","proofs/m0-046-identification/Obligations045/M0Coincidence.lean","proofs/m0-046-identification/lake-manifest.json","proofs/m0-046-identification/lakefile.toml","proofs/m0-046-identification/lean-toolchain","vectors/laws/m0-identification.lean.json","contracts/m0-moment-identification.json","samples/laws/m0-moment-identification/yes/sample.json","samples/laws/m0-moment-identification/no/sample.json","proofs/m0-046-uncertainty/BridgeNegatives.lean","proofs/m0-046-uncertainty/M0BlockCoverage046.lean","proofs/m0-046-uncertainty/M0Bridge.lean","proofs/m0-046-uncertainty/M0Diagonal046.lean","proofs/m0-046-uncertainty/M0FiniteDiscord046.lean","proofs/m0-046-uncertainty/M0Interval046.lean","proofs/m0-046-uncertainty/M0Lindeberg046.lean","proofs/m0-046-uncertainty/M0Moments046.lean","proofs/m0-046-uncertainty/M0Threshold046.lean","proofs/m0-046-uncertainty/Obligations045/ConsensusGrid.lean","proofs/m0-046-uncertainty/Obligations045/M0Coincidence.lean","proofs/m0-046-uncertainty/Obligations045/M0Diagonal.lean","proofs/m0-046-uncertainty/Obligations045/M0Limit.lean","proofs/m0-046-uncertainty/Obligations045/M0Offdiag.lean","proofs/m0-046-uncertainty/Obligations045.lean","proofs/m0-046-uncertainty/lake-manifest.json","proofs/m0-046-uncertainty/lakefile.toml","proofs/m0-046-uncertainty/lean-toolchain","contracts/m0-keff-interval.json","samples/laws/m0-keff-interval/yes/sample.json","samples/laws/m0-keff-interval/yes/api-rows.json","samples/laws/m0-keff-interval/no/sample.json","vectors/laws/m0-keff-interval.json","vectors/laws/m0-uncertainty-blocks.lean.json","vectors/laws/m0-uncertainty-interval.lean.json","vectors/laws/m0-uncertainty-finite-discord.lean.json","proofs/m1-046-diagonal/M0Bridge.lean","proofs/m1-046-diagonal/M0Diagonal046.lean","proofs/m1-046-diagonal/M0Lindeberg046.lean","proofs/m1-046-diagonal/M0Moments046.lean","proofs/m1-046-diagonal/M0Threshold046.lean","proofs/m1-046-diagonal/M1Bridge046.lean","proofs/m1-046-diagonal/M1Diagonal046.lean","proofs/m1-046-diagonal/M1Offdiag046.lean","proofs/m1-046-diagonal/Obligations045/M0Limit.lean","proofs/m1-046-diagonal/Obligations045/M0Offdiag.lean","proofs/m1-046-diagonal/lake-manifest.json","proofs/m1-046-diagonal/lakefile.toml","proofs/m1-046-diagonal/lean-toolchain","vectors/laws/m1-diagonal-partial.lean.json","contracts/m1-subcauses.json","contracts/m1-diagonal-regions.json","samples/laws/m1-diagonal-regions/yes/sample.json","samples/laws/m1-diagonal-regions/no/sample.json","proofs/m1-046-bridge/M0Bridge.lean","proofs/m1-046-bridge/M1Bridge046.lean","proofs/m1-046-bridge/Obligations045/M0Limit.lean","proofs/m1-046-bridge/Obligations045/M0Offdiag.lean","proofs/m1-046-bridge/lake-manifest.json","proofs/m1-046-bridge/lakefile.toml","proofs/m1-046-bridge/lean-toolchain","vectors/laws/m1-generator-binomial.lean.json","contracts/m1-generator-binomial.json","samples/laws/m1-generator-binomial/yes/sample.json","samples/laws/m1-generator-binomial/no/sample.json","proofs/m1-046-offdiag/M0Bridge.lean","proofs/m1-046-offdiag/M0Diagonal046.lean","proofs/m1-046-offdiag/M0Moments046.lean","proofs/m1-046-offdiag/M1Bridge046.lean","proofs/m1-046-offdiag/M1Offdiag046.lean","proofs/m1-046-offdiag/Obligations045/M0Limit.lean","proofs/m1-046-offdiag/Obligations045/M0Offdiag.lean","proofs/m1-046-offdiag/lake-manifest.json","proofs/m1-046-offdiag/lakefile.toml","proofs/m1-046-offdiag/lean-toolchain","vectors/laws/m1-offdiag-limit.lean.json","contracts/m1-offdiag-limit.json","samples/laws/m1-offdiag-limit/yes/sample.json","samples/laws/m1-offdiag-limit/no/sample.json","vectors/laws/projection-chain.native.json","contracts/projection-chain.json","proofs/projection-chain.md","vectors/laws/projection-chain.json","samples/laws/projection-chain/yes/sample.json","samples/laws/projection-chain/no/sample.json","vectors/laws/definitions.native-capture.json","vectors/laws/experiment1a-protocol.native-capture.json","vectors/laws/m0-identification.native-capture.json","vectors/laws/m0-uncertainty.native-capture.json","vectors/laws/m1-diagonal-partial.native-capture.json","vectors/laws/m1-generator-binomial.native-capture.json","vectors/laws/m1-offdiag-limit.native-capture.json","vectors/laws/projection-chain.native-capture.json","vectors/laws/experiment1a-public-input.native-capture.json","docs/img/logo.svg","docs/img/logo-fork.svg","docs/img/cell.svg","docs/img/withdrawal.svg","docs/img/price.svg","docs/img/thermometer.svg","docs/contracts/m0-moment-identification.md","docs/contracts/projection-chain.md","docs/contracts/m0-wf-floor-refutation.md","docs/contracts/m0-keff-floor-refutation.md","docs/contracts/m0-diagonal-threshold.md","docs/contracts/m1-generator-binomial.md","docs/contracts/m1-offdiag-limit.md","docs/contracts/m0-diagonal-lindeberg.md","docs/contracts/m1-diagonal-regions.md","docs/contracts/m0-diagonal-symmetric.md","docs/contracts/m0-keff-interval.md","docs/contracts/m0-diagonal-moments.md","docs/contracts/m0-refuted-inverses.md","docs/contracts/experiment1a-public-attribution.md","docs/contracts/installation-046-inputs.md"],"scripts":{"build":"tsc --build","test":"node --import ./test/setup.ts --test --test-concurrency=2 test/*.test.ts test/measures/*.test.ts"},"devDependencies":{"@types/node":"^22","typescript":"^5.9.3"}}
@@ -0,0 +1,11 @@
1
+ {
2
+ "about": "# Extension, named lineage and effective participation\n\nExtension is the supplied set of coordinate/interval pairs in A5, compared at fixed coordinate interpretation, resolution and context. Equal extensions identify one extensional class under that convention. They do not identify historical actors, establish a shared cause or prove probabilistic independence. A named lineage is a declared model grouping with a supplied generative/ancestry mechanism, membership and weights. Its name is not observational evidence.\n\nJoint independence is factorization of the declared joint probability law for all joint events. A conditional statement names its conditioning variable and requires factorization in every positive-mass stratum. Different names, disjoint extensions and pairwise zero covariance do not suffice. The fair-bit XOR triple has independent pairs and fails joint factorization.\n\nFor finite nonnegative masses with positive total, set w_i=a_i/sum(a) and K_eff=1/sum(w_i^2). It is dimensionless weight participation, between1 and the positive-support size; equal positive weights give that size. It is not a count of causally independent extensions. For a symmetric PSD covariance C with positive trace, normalized nonnegative eigenvalues instead give spectral participation trace(C)^2/tr(C^2). These are different inputs and need a model before they can be equated. Existing participationRatio checks symmetry and nonnegative diagonal but does not certify PSD. A true covariance constructed from the declared error rows supplies PSD; passing arbitrary matrices directly does not. Zero variation is unmeasured. In O4, K_eff=K and identification from population moments apply only in the declared uniform known-p family; nonuniform moment collisions remain.\n\nA7 concerns fixed coordinates, resolution, context and ceilings under added live narrowing constraints. Withdrawal and witnessed local widening may reopen freedom on the same coordinate. A sum of coordinate log-cardinal freedoms is not automatically joint Shannon entropy. T90 equates log-cardinality with entropy for nonempty finite uniformly distributed admissible states at fixed resolution; it does not establish the identity for arbitrary priors or a physical phase interpretation.\n\nA9 is a representation convention, not a convergence theorem. T99 concerns finite records and worlds, an acyclic reachable dependency graph and total supplied lattice operations: evaluation takes finitely many operations. Reachable ancestral cycles reject, while unreachable cycles do not affect a query. An arbitrary monotone iteration still needs its carrier, operator, seed and progress/height hypotheses; a monotone reflection on incomparable singleton intervals has a two-cycle. Different hypotheses and missing proofs are not a fork.\n\nThe historical C1 independence-is-distance wording supplies no probabilistic factorization. Definitions settle meaning only. Conditional lineage identification, causal subgroup recovery and oracle-free reference remain open. This companion text changes no signed base, algebra, M/3-M/4 or wire.\n",
3
+ "at": "witness:obligations046/O8",
4
+ "by": "target",
5
+ "form": "alphabet",
6
+ "measure": "text",
7
+ "role": "writes",
8
+ "scope": "prose/en/contracts/extension-lineage-participation",
9
+ "shape": "docs/contracts/extension-lineage-participation.md",
10
+ "value": "lock"
11
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "about": "# Experiment 1a: protocol, no measurement\n\nThe versioned model-collapse-1a protocol is prepared independently of dataset selection. No owner-selected dataset, license, bound training/aggregation model or finite analysis design has been supplied; no data were retrieved and no empirical experiment was run. The result is unmeasured, not zero, pass, fail or a law.\n\nFreeze the protocol digest before retrieval. A separate run manifest must bind the owner-selected snapshot/license, model and training provenance, lineage mechanism, volume grid, truth/quality endpoint, sampling units/dependence blocks, exploratory/holdout split, seed, stopping rule, finite hypothesis, effect threshold and valid uncertainty. Freeze its digest before retrieval, and freeze the final exploratory analysis before opening holdout. Digests identify bytes; they do not certify a signed admission or delivery.\n\nRecord prior exposure, including this session; unknown training exposure remains unknown. Keep related units and duplicates from leaking across splits. Reuse O5 uncertainty only under its actual sampling/calibration hypotheses. Preserve failed runs and report every prespecified outcome whether the falsifier succeeds or fails. No posthoc endpoint or optional stopping is authorized.\n\nA finite within-lineage curve that continues falling is a candidate empirical challenge only to a specified finite prediction or justified bound. It does not by itself refute a positive asymptotic floor. The training process, quality and lineage assumptions must be supplied; no model is invented from the experiment title. Causal interpretations, including the unspecified historical (ii)/(iii), remain unmeasured without an observable intervention, justified assignment and a defined estimand. Descriptive observations cannot close causal identification.\n\nConditional lineage identification, causal subgroup recovery and oracle-free reference remain open. This protocol changes no algebra, M/3-M/4, wire, signed base or protocol instrument.\n",
3
+ "at": "witness:obligations046/O9",
4
+ "by": "target",
5
+ "form": "alphabet",
6
+ "measure": "text",
7
+ "role": "writes",
8
+ "scope": "prose/en/contracts/model-collapse-1a",
9
+ "shape": "docs/contracts/model-collapse-1a.md",
10
+ "value": "lock"
11
+ }
@@ -0,0 +1,72 @@
1
+ import Std
2
+ set_option maxRecDepth 10000
3
+ set_option maxHeartbeats 8000000
4
+ namespace Obligations045
5
+ -- Finite closed-form calculation only. This file does not assert a limit theorem.
6
+ def binom : Nat → Nat → Nat
7
+ | 0, 0 => 1
8
+ | 0, _ + 1 => 0
9
+ | _ + 1, 0 => 1
10
+ | n + 1, k + 1 => binom n k + binom n (k + 1)
11
+ def configs : Nat → List (List Bool)
12
+ | 0 => [[]]
13
+ | k + 1 => (configs k).flatMap (fun xs => [false :: xs, true :: xs])
14
+ def ones (xs : List Bool) : Nat := (xs.filter id).length
15
+ -- p=P/20, c=C/20. Below/equal/above 1/2 encoded as 2/1/0.
16
+ def loss2 (K P C m : Nat) : Nat :=
17
+ let lhs := 2 * (20 * C * m + (20-C) * P * K)
18
+ let rhs := 400 * K
19
+ if lhs < rhs then 2 else if lhs == rhs then 1 else 0
20
+ def grouped (K P C : Nat) : Nat :=
21
+ ((List.range (K+1)).map (fun m =>
22
+ binom K m * P^m * (20-P)^(K-m) * loss2 K P C m)).sum
23
+ def enumerated (K P C : Nat) : Nat :=
24
+ ((configs K).map (fun xs =>
25
+ P^(ones xs) * (20-P)^(K-ones xs) * loss2 K P C (ones xs))).sum
26
+ def grid : List (Nat × Nat × Nat) :=
27
+ ([1,2,3,4] : List Nat).flatMap (fun K =>
28
+ (List.range 9).flatMap (fun i =>
29
+ (List.range 20).map (fun j => (K,11+i,1+j))))
30
+ theorem grid_has_720_cases : grid.length = 720 := by decide
31
+ theorem closed_form_matches_full_configurations :
32
+ ∀ x ∈ grid, grouped x.1 x.2.1 x.2.2 = enumerated x.1 x.2.1 x.2.2 := by decide
33
+ theorem grid_probability_range :
34
+ ∀ x ∈ grid, grouped x.1 x.2.1 x.2.2 ≤ 2*20^x.1 := by decide
35
+ -- p=3/4, c=1/2: two distinct K have the same 1/64 floor.
36
+ theorem inverse_alias :
37
+ grouped 3 15 10 * (2*20^5) = grouped 5 15 10 * (2*20^3) := by decide
38
+ -- For p=3/4,c=9/10 and counts summing to N, compare score with 17*N/36.
39
+ def score (counts : List Nat) (zs : List Bool) : Nat :=
40
+ ((counts.zip zs).map (fun x => if x.2 then x.1 else 0)).sum
41
+ def floorNumerator (counts : List Nat) : Nat :=
42
+ ((configs counts.length).map (fun zs =>
43
+ let lhs := 36 * score counts zs
44
+ let rhs := 17 * counts.sum
45
+ let factor := if lhs < rhs then 2 else if lhs == rhs then 1 else 0
46
+ 3^(ones zs) * factor)).sum
47
+ -- Denominator is 2*4^3=128 in each three-lineage case.
48
+ theorem same_effective_participation_different_floor :
49
+ (1*1+4*4+4*4 : Nat) = 2*2+2*2+5*5 ∧
50
+ floorNumerator [1,4,4] = 20 ∧ floorNumerator [2,2,5] = 32 := by decide
51
+ -- WF population N=5, initial counts [3,1,1]; all 21 descendant count states.
52
+ def wfNumerator : Nat :=
53
+ ((List.range 6).map (fun a =>
54
+ ((List.range (6-a)).map (fun b =>
55
+ binom 5 a * binom (5-a) b * 3^a *
56
+ floorNumerator [a,b,5-a-b])).sum)).sum
57
+ theorem wf_transition_normalized :
58
+ ((List.range 6).map (fun a =>
59
+ ((List.range (6-a)).map (fun b =>
60
+ binom 5 a * binom (5-a) b * 3^a)).sum)).sum = 5^5 := by decide
61
+ theorem wf_floor_decreases_in_expectation :
62
+ floorNumerator [3,1,1] = 32 ∧ wfNumerator = 92440 ∧
63
+ wfNumerator < floorNumerator [3,1,1] * 5^5 := by decide
64
+ end Obligations045
65
+ #print axioms Obligations045.grid_has_720_cases
66
+ #print axioms Obligations045.closed_form_matches_full_configurations
67
+ #print axioms Obligations045.grid_probability_range
68
+ #print axioms Obligations045.inverse_alias
69
+
70
+ #print axioms Obligations045.same_effective_participation_different_floor
71
+ #print axioms Obligations045.wf_transition_normalized
72
+ #print axioms Obligations045.wf_floor_decreases_in_expectation
@@ -0,0 +1,39 @@
1
+ import Mathlib.Data.Real.Basic
2
+ import Mathlib.Tactic.Ring
3
+ namespace Obligations045.M0Coincidence
4
+ /-- Exact expectation over independent Bernoulli(p) latent lineages.
5
+ The recurrence keeps both branches and their actual probabilities. -/
6
+ def expect (p : ℝ) : List ℝ → (ℝ → ℝ) → ℝ
7
+ | [], f => f 0
8
+ | w :: ws, f => (1-p)*expect p ws f + p*expect p ws (fun x => f (w+x))
9
+ def squares (ws : List ℝ) : ℝ := (ws.map (fun w => w^2)).sum
10
+
11
+ theorem expect_quadratic (p : ℝ) (ws : List ℝ) (a b d : ℝ) :
12
+ expect p ws (fun x => a*x^2+b*x+d) =
13
+ a*(p^2*ws.sum^2+p*(1-p)*squares ws)+b*p*ws.sum+d := by
14
+ induction ws generalizing a b d with
15
+ | nil => simp [expect, squares]
16
+ | cons w ws ih =>
17
+ have hf : (fun x : ℝ => a*(w+x)^2+b*(w+x)+d) =
18
+ (fun x => a*x^2+(2*a*w+b)*x+(a*w^2+b*w+d)) := by
19
+ funext x
20
+ ring
21
+ simp only [expect, hf]
22
+ rw [ih, ih]
23
+ simp only [List.sum_cons, squares, List.map_cons]
24
+ ring
25
+
26
+ theorem pair_coincidence (p c : ℝ) (ws : List ℝ) (hw : ws.sum = 1) :
27
+ expect p ws (fun x => ((1-c)*p+c*x)^2+(1-((1-c)*p+c*x))^2) =
28
+ p^2+(1-p)^2+2*c^2*p*(1-p)*squares ws := by
29
+ have hf : (fun x : ℝ => ((1-c)*p+c*x)^2+(1-((1-c)*p+c*x))^2) =
30
+ (fun x => (2*c^2)*x^2+(2*c*(2*(1-c)*p-1))*x+
31
+ (((1-c)*p)^2+(1-(1-c)*p)^2)) := by
32
+ funext x
33
+ ring
34
+ rw [hf, expect_quadratic, hw]
35
+ ring
36
+
37
+ theorem triple_redundant (q : ℝ) :
38
+ q^3+(1-q)^3 = (3*(q^2+(1-q)^2)-1)/2 := by ring
39
+ end Obligations045.M0Coincidence
@@ -0,0 +1,18 @@
1
+ import Obligations045.ConsensusGrid
2
+ set_option maxRecDepth 10000
3
+ set_option maxHeartbeats 8000000
4
+ namespace Obligations045.Diagonal
5
+ /-- Finite diagonal vector only: K=1,p=3/4,c=1/3,w=[1].
6
+ A=false gives q=1/2, A=true gives q=5/6.
7
+ No general CLT or diagonal-limit theorem is declared in this file. -/
8
+ def loss2 (b N : Nat) : Nat := if 2*b < N then 2 else if 2*b == N then 1 else 0
9
+ def unbiasedNumerator (N : Nat) : Nat :=
10
+ ((List.range (N+1)).map (fun b => Obligations045.binom N b * loss2 b N)).sum
11
+ def cases : List Nat := [1,2,3,4,5,6,7,8,9,10,11,12]
12
+ theorem unbiased_diagonal_vector : ∀ N ∈ cases, unbiasedNumerator N = 2^N := by decide
13
+ -- Total error numerator has denominator 8*6^N; the target floor is 1/8.
14
+ def errorNumerator (N : Nat) : Nat :=
15
+ 6^N+3*((List.range (N+1)).map (fun b =>
16
+ Obligations045.binom N b * 5^b * loss2 b N)).sum
17
+ #eval cases.map (fun N => (N,errorNumerator N,8*6^N))
18
+ end Obligations045.Diagonal
@@ -0,0 +1,134 @@
1
+ import Mathlib.Topology.Instances.Real.Lemmas
2
+ import Mathlib.Data.Real.Archimedean
3
+ import Mathlib.Topology.Algebra.Order.Field
4
+ import Mathlib.Algebra.Order.Floor.Ring
5
+ import Mathlib.Tactic.Linarith
6
+ import Mathlib.Tactic.Ring
7
+ import Mathlib.Tactic.NormNum
8
+ import Mathlib.Tactic.Positivity
9
+
10
+ open scoped BigOperators
11
+ open Filter Topology
12
+ noncomputable section
13
+ open Classical
14
+ namespace Obligations045.M0
15
+
16
+ /-- Declared binary M0 domain. This structure contains no limiting-probability axiom. -/
17
+ structure Domain where
18
+ K : ℕ
19
+ K_pos : 0 < K
20
+ p : ℝ
21
+ c : ℝ
22
+ p_half : (1:ℝ)/2 < p
23
+ p_lt_one : p < 1
24
+ c_nonneg : 0 ≤ c
25
+ c_lt_one : c < 1
26
+ w : ℕ → ℝ
27
+ w_nonneg : ∀ i, 0 ≤ w i
28
+ weights_sum : ∑ i ∈ Finset.range K, w i = 1
29
+
30
+ def cumulative (w : ℕ → ℝ) (i : ℕ) : ℝ := ∑ j ∈ Finset.range i, w j
31
+
32
+ def allocation (w : ℕ → ℝ) (N i : ℕ) : ℕ :=
33
+ ⌊(N:ℝ) * cumulative w (i+1)⌋₊ - ⌊(N:ℝ) * cumulative w i⌋₊
34
+
35
+ theorem prefix_succ (w : ℕ → ℝ) (i : ℕ) :
36
+ cumulative w (i+1) = cumulative w i + w i := by simp [cumulative, Finset.sum_range_succ]
37
+
38
+ theorem prefix_monotone (w : ℕ → ℝ) (hw : ∀ i, 0 ≤ w i) : Monotone (cumulative w) := by
39
+ apply monotone_nat_of_le_succ
40
+ intro i
41
+ rw [prefix_succ]
42
+ exact le_add_of_nonneg_right (hw i)
43
+
44
+ theorem allocation_sum (M : Domain) (N : ℕ) :
45
+ ∑ i ∈ Finset.range M.K, allocation M.w N i = N := by
46
+ let f : ℕ → ℕ := fun i => ⌊(N:ℝ) * cumulative M.w i⌋₊
47
+ have hf : Monotone f := fun i j hij =>
48
+ Nat.floor_mono (mul_le_mul_of_nonneg_left (prefix_monotone M.w M.w_nonneg hij) (by positivity))
49
+ change ∑ i ∈ Finset.range M.K, (f (i+1) - f i) = N
50
+ rw [Finset.sum_range_tsub hf]
51
+ simp [f, cumulative, M.weights_sum]
52
+
53
+ theorem allocation_discrepancy (M : Domain) (N i : ℕ) :
54
+ -1 < (allocation M.w N i : ℝ) - (N:ℝ)*M.w i ∧
55
+ (allocation M.w N i : ℝ) - (N:ℝ)*M.w i < 1 := by
56
+ have hpre : 0 ≤ cumulative M.w i := Finset.sum_nonneg (fun j _ => M.w_nonneg j)
57
+ have hnext : 0 ≤ cumulative M.w (i+1) := Finset.sum_nonneg (fun j _ => M.w_nonneg j)
58
+ have hm : ⌊(N:ℝ)*cumulative M.w i⌋₊ ≤ ⌊(N:ℝ)*cumulative M.w (i+1)⌋₊ :=
59
+ Nat.floor_mono (mul_le_mul_of_nonneg_left (prefix_monotone M.w M.w_nonneg (Nat.le_succ i)) (by positivity))
60
+ have a := Nat.floor_le (mul_nonneg (Nat.cast_nonneg N) hpre)
61
+ have b := Nat.lt_floor_add_one ((N:ℝ)*cumulative M.w i)
62
+ have c := Nat.floor_le (mul_nonneg (Nat.cast_nonneg N) hnext)
63
+ have d := Nat.lt_floor_add_one ((N:ℝ)*cumulative M.w (i+1))
64
+ have hs := prefix_succ M.w i
65
+ simp only [allocation, Nat.cast_sub hm]
66
+ constructor <;> nlinarith
67
+
68
+ def q (M : Domain) (a : Bool) : ℝ := (1-M.c)*M.p + if a then M.c else 0
69
+
70
+ theorem q_pos (M : Domain) (a : Bool) : 0 < q M a := by
71
+ have hp : 0 < M.p := by linarith [M.p_half]
72
+ cases a <;> simp only [q, Bool.false_eq_true, ite_false, add_zero, ite_true] <;>
73
+ nlinarith [M.c_nonneg, M.c_lt_one]
74
+
75
+ theorem q_lt_one (M : Domain) (a : Bool) : q M a < 1 := by
76
+ have hp : 0 < M.p := by linarith [M.p_half]
77
+ cases a <;> simp only [q, Bool.false_eq_true, ite_false, add_zero, ite_true] <;>
78
+ nlinarith [M.c_nonneg, M.c_lt_one, M.p_lt_one]
79
+
80
+ def score (M : Domain) (a : Fin M.K → Bool) : ℝ :=
81
+ ∑ i : Fin M.K, M.w i * q M (a i)
82
+
83
+ def latentMass (M : Domain) (a : Fin M.K → Bool) : ℝ :=
84
+ ∏ i : Fin M.K, if a i then M.p else 1-M.p
85
+
86
+ def fairLoss (correct total : ℕ) : ℝ :=
87
+ if 2*correct < total then 1 else if 2*correct = total then 1/2 else 0
88
+
89
+ /-- The exact finite conditional error, using independent binomial counts in each lineage. -/
90
+ noncomputable def conditionalError (M : Domain) (N : ℕ) (a : Fin M.K → Bool) : ℝ :=
91
+ ∑ x : (i : Fin M.K) → Fin (allocation M.w N i + 1),
92
+ (∏ i : Fin M.K,
93
+ (Nat.choose (allocation M.w N i) (x i) : ℝ) *
94
+ q M (a i) ^ (x i : ℕ) *
95
+ (1-q M (a i)) ^ (allocation M.w N i - (x i : ℕ))) *
96
+ fairLoss (∑ i : Fin M.K, (x i : ℕ)) N
97
+
98
+ noncomputable def error (M : Domain) (N : ℕ) : ℝ :=
99
+ ∑ a : Fin M.K → Bool, latentMass M a * conditionalError M N a
100
+
101
+ noncomputable def limitingLoss (s : ℝ) : ℝ :=
102
+ if s < 1/2 then 1 else if s = 1/2 then 1/2 else 0
103
+
104
+ noncomputable def floor (M : Domain) : ℝ :=
105
+ ∑ a : Fin M.K → Bool, latentMass M a * limitingLoss (score M a)
106
+
107
+ /-- Explicit proof obligations, NOT assumptions hidden inside the generative model.
108
+ The strict branches require concentration. The equality branch requires a CLT.
109
+ This certificate has no constructed instance in this project. -/
110
+ def ConditionalTailLimits (M : Domain) : Prop :=
111
+ (∀ a, score M a < 1/2 → Tendsto (fun N => conditionalError M N a) atTop (𝓝 1)) ∧
112
+ (∀ a, 1/2 < score M a → Tendsto (fun N => conditionalError M N a) atTop (𝓝 0)) ∧
113
+ (∀ a, score M a = 1/2 → Tendsto (fun N => conditionalError M N a) atTop (𝓝 (1/2)))
114
+
115
+ /-- Kernel checked finite-mixture transfer. This is intentionally conditional;
116
+ it does not claim that ConditionalTailLimits follows from Domain. -/
117
+ theorem limit_of_conditional_tail_limits (M : Domain) (h : ConditionalTailLimits M) :
118
+ Tendsto (error M) atTop (𝓝 (floor M)) := by
119
+ have hcase : ∀ a, Tendsto (fun N => conditionalError M N a) atTop
120
+ (𝓝 (limitingLoss (score M a))) := by
121
+ intro a
122
+ by_cases hl : score M a < 1/2
123
+ · rw [limitingLoss, if_pos hl]
124
+ exact h.1 a hl
125
+ · by_cases he : score M a = 1/2
126
+ · rw [limitingLoss, if_neg hl, if_pos he]
127
+ exact h.2.2 a he
128
+ · have hg : 1/2 < score M a := lt_of_le_of_ne (le_of_not_gt hl) (Ne.symm he)
129
+ rw [limitingLoss, if_neg hl, if_neg he]
130
+ exact h.2.1 a hg
131
+ unfold error floor
132
+ exact tendsto_finset_sum _ (fun a _ => tendsto_const_nhds.mul (hcase a))
133
+
134
+ end Obligations045.M0
@@ -0,0 +1,171 @@
1
+ import Obligations045.M0Limit
2
+ import Mathlib.Probability.StrongLaw
3
+ import Mathlib.MeasureTheory.Integral.DominatedConvergence
4
+ open scoped BigOperators
5
+ open Filter Topology MeasureTheory ProbabilityTheory
6
+ noncomputable section
7
+ namespace Obligations045.M0
8
+
9
+ theorem floor_quota_bounds (M : Domain) (N i : ℕ) :
10
+ (∑ j ∈ Finset.range M.K, allocation M.w N j = N) ∧
11
+ (-1 < (allocation M.w N i : ℝ)-(N:ℝ)*M.w i ∧
12
+ (allocation M.w N i : ℝ)-(N:ℝ)*M.w i < 1) :=
13
+ ⟨allocation_sum M N, allocation_discrepancy M N i⟩
14
+
15
+ theorem allocation_ratio (M : Domain) (i : ℕ) :
16
+ Tendsto (fun N : ℕ => (allocation M.w N i : ℝ)/(N:ℝ)) atTop (𝓝 (M.w i)) := by
17
+ have hInv : Tendsto (fun N : ℕ => (1:ℝ)/(N:ℝ)) atTop (𝓝 0) :=
18
+ tendsto_const_nhds.div_atTop tendsto_natCast_atTop_atTop
19
+ apply tendsto_of_tendsto_of_tendsto_of_le_of_le'
20
+ (by simpa using tendsto_const_nhds.sub hInv)
21
+ (by simpa using tendsto_const_nhds.add hInv)
22
+ · filter_upwards [eventually_ge_atTop 1] with N hN
23
+ have hp : 0 < (N:ℝ) := by exact_mod_cast (lt_of_lt_of_le Nat.zero_lt_one hN)
24
+ rw [le_div_iff₀ hp, sub_mul, inv_mul_cancel₀ hp.ne']
25
+ linarith [(allocation_discrepancy M N i).1]
26
+ · filter_upwards [eventually_ge_atTop 1] with N hN
27
+ have hp : 0 < (N:ℝ) := by exact_mod_cast (lt_of_lt_of_le Nat.zero_lt_one hN)
28
+ rw [div_le_iff₀ hp, add_mul, inv_mul_cancel₀ hp.ne']
29
+ linarith [(allocation_discrepancy M N i).2]
30
+
31
+ theorem allocation_zero (M : Domain) (i : ℕ) (hw : M.w i = 0) (N : ℕ) :
32
+ allocation M.w N i = 0 := by
33
+ simp [allocation, prefix_succ, hw]
34
+
35
+ theorem allocation_atTop (M : Domain) (i : ℕ) (hw : 0 < M.w i) :
36
+ Tendsto (fun N => allocation M.w N i) atTop atTop := by
37
+ apply (tendsto_natCast_atTop_iff (R := ℝ)).mp
38
+ apply tendsto_atTop.2
39
+ intro r
40
+ have he : ∀ᶠ N : ℕ in atTop, (r+1)/M.w i ≤ (N:ℝ) :=
41
+ tendsto_natCast_atTop_atTop.eventually (eventually_ge_atTop _)
42
+ filter_upwards [he] with N hN
43
+ have hmul := (div_le_iff₀ hw).mp hN
44
+ linarith [(allocation_discrepancy M N i).1]
45
+
46
+ theorem lineage_quota_limit (M : Domain) (i : ℕ) (z : ℕ → ℝ) (q : ℝ)
47
+ (hz0 : z 0 = 0)
48
+ (hz : Tendsto (fun n : ℕ => z n/(n:ℝ)) atTop (𝓝 q)) :
49
+ Tendsto (fun N : ℕ => z (allocation M.w N i)/(N:ℝ)) atTop (𝓝 (M.w i*q)) := by
50
+ by_cases hw : M.w i = 0
51
+ · simp [allocation_zero M i hw, hz0, hw]
52
+ · have hp : 0 < M.w i := lt_of_le_of_ne (M.w_nonneg i) (Ne.symm hw)
53
+ have h := (allocation_ratio M i).mul (hz.comp (allocation_atTop M i hp))
54
+ convert h using 1
55
+ funext N
56
+ by_cases hn : allocation M.w N i = 0
57
+ · simp [hn, hz0]
58
+ · dsimp
59
+ rw [div_mul_div_comm, mul_comm (allocation M.w N i : ℝ), mul_div_mul_right _ _ (by exact_mod_cast hn : (allocation M.w N i : ℝ) ≠ 0)]
60
+
61
+ /-- The imported strong law is applied to actual lineage variables; no convergence certificate. -/
62
+ theorem lineage_lgn {Ω : Type*} [MeasurableSpace Ω] (μ : Measure Ω)
63
+ (X : ℕ → Ω → ℝ) (q : ℝ)
64
+ (hint : Integrable (X 0) μ)
65
+ (hindep : Pairwise (fun i j : ℕ => IndepFun (X i) (X j) μ))
66
+ (hident : ∀ i, IdentDistrib (X i) (X 0) μ μ)
67
+ (hmean : ∫ ω, X 0 ω ∂μ = q) :
68
+ ∀ᵐ ω ∂μ, Tendsto (fun n : ℕ => (∑ j ∈ Finset.range n, X j ω)/(n:ℝ))
69
+ atTop (𝓝 q) := by
70
+ simpa only [hmean] using strong_law_ae_real X hint hindep hident
71
+
72
+ def memberAverage {Ω : Type*} (M : Domain) (X : Fin M.K → ℕ → Ω → ℝ)
73
+ (N : ℕ) (ω : Ω) : ℝ :=
74
+ ∑ i : Fin M.K, (∑ j ∈ Finset.range (allocation M.w N i), X i j ω)/(N:ℝ)
75
+
76
+ theorem member_average_lgn {Ω : Type*} [MeasurableSpace Ω]
77
+ (M : Domain) (a : Fin M.K → Bool) (μ : Measure Ω)
78
+ (X : Fin M.K → ℕ → Ω → ℝ)
79
+ (hint : ∀ i, Integrable (X i 0) μ)
80
+ (hindep : ∀ i, Pairwise (fun j k : ℕ => IndepFun (X i j) (X i k) μ))
81
+ (hident : ∀ i j, IdentDistrib (X i j) (X i 0) μ μ)
82
+ (hmean : ∀ i, ∫ ω, X i 0 ω ∂μ = q M (a i)) :
83
+ ∀ᵐ ω ∂μ, Tendsto (fun N => memberAverage M X N ω) atTop (𝓝 (score M a)) := by
84
+ have hall : ∀ᵐ ω ∂μ, ∀ i : Fin M.K,
85
+ Tendsto (fun n : ℕ => (∑ j ∈ Finset.range n, X i j ω)/(n:ℝ))
86
+ atTop (𝓝 (q M (a i))) := by
87
+ rw [ae_all_iff]
88
+ intro i
89
+ exact lineage_lgn μ (X i) (q M (a i)) (hint i) (hindep i) (hident i) (hmean i)
90
+ filter_upwards [hall] with ω hω
91
+ unfold memberAverage score
92
+ apply tendsto_finset_sum
93
+ intro i _
94
+ exact lineage_quota_limit M i (fun n => ∑ j ∈ Finset.range n, X i j ω)
95
+ (q M (a i)) (by simp) (hω i)
96
+
97
+ theorem floor_limit_offdiag_scalar {f : ℕ → ℝ} {s : ℝ}
98
+ (hf : Tendsto f atTop (𝓝 s)) (hne : s ≠ (1:ℝ)/2) :
99
+ Tendsto (fun N => limitingLoss (f N)) atTop (𝓝 (limitingLoss s)) := by
100
+ by_cases hs : s < (1:ℝ)/2
101
+ · have he : ∀ᶠ N in atTop, f N < (1:ℝ)/2 := hf.eventually (Iio_mem_nhds hs)
102
+ have hEq : (fun N => limitingLoss (f N)) =ᶠ[atTop] (fun _ => (1:ℝ)) :=
103
+ he.mono (fun N hN => by change limitingLoss (f N) = 1; rw [limitingLoss, if_pos hN])
104
+ rw [limitingLoss, if_pos hs]
105
+ exact tendsto_const_nhds.congr' hEq.symm
106
+ · have hg : (1:ℝ)/2 < s := lt_of_le_of_ne (le_of_not_gt hs) (Ne.symm hne)
107
+ have he : ∀ᶠ N in atTop, (1:ℝ)/2 < f N := hf.eventually (Ioi_mem_nhds hg)
108
+ have hEq : (fun N => limitingLoss (f N)) =ᶠ[atTop] (fun _ => (0:ℝ)) :=
109
+ he.mono (fun N hN => by
110
+ change limitingLoss (f N) = 0
111
+ rw [limitingLoss, if_neg (not_lt.mpr hN.le), if_neg (Ne.symm hN.ne)])
112
+ rw [limitingLoss, if_neg hs, if_neg hne]
113
+ exact tendsto_const_nhds.congr' hEq.symm
114
+
115
+ /-- Off-diagonal passage from actual sample averages to error probabilities.
116
+ Unlike the diagonal, no CLT is needed. The lineage strong laws and quota
117
+ composition must supply haverage for the chosen M0 array. -/
118
+ theorem floor_limit_offdiag {Ω : Type*} [MeasurableSpace Ω]
119
+ (μ : Measure Ω) [IsProbabilityMeasure μ]
120
+ (average : ℕ → Ω → ℝ) (s : ℝ)
121
+ (hmeas : ∀ N, AEStronglyMeasurable (fun ω => limitingLoss (average N ω)) μ)
122
+ (haverage : ∀ᵐ ω ∂μ, Tendsto (fun N => average N ω) atTop (𝓝 s))
123
+ (hne : s ≠ (1:ℝ)/2) :
124
+ Tendsto (fun N => ∫ ω, limitingLoss (average N ω) ∂μ)
125
+ atTop (𝓝 (limitingLoss s)) := by
126
+ have hbound : ∀ N, ∀ᵐ ω ∂μ, ‖limitingLoss (average N ω)‖ ≤ (1:ℝ) := by
127
+ intro N
128
+ filter_upwards [] with ω
129
+ unfold limitingLoss
130
+ split_ifs <;> norm_num
131
+ have hlim : ∀ᵐ ω ∂μ, Tendsto (fun N => limitingLoss (average N ω))
132
+ atTop (𝓝 (limitingLoss s)) := haverage.mono (fun ω hω => floor_limit_offdiag_scalar hω hne)
133
+ simpa using tendsto_integral_of_dominated_convergence (fun _ => (1:ℝ)) hmeas
134
+ (integrable_const (1:ℝ)) hbound hlim
135
+
136
+ /-- M0 off-diagonal probability limit from declared lineage laws and the proved quotas.
137
+ The only extra technical input is measurability of the loss; no asymptotic
138
+ convergence hypothesis and no CLT certificate is assumed. -/
139
+ theorem floor_limit_offdiag_M0 {Ω : Type*} [MeasurableSpace Ω]
140
+ (M : Domain) (a : Fin M.K → Bool) (μ : Measure Ω) [IsProbabilityMeasure μ]
141
+ (X : Fin M.K → ℕ → Ω → ℝ)
142
+ (hint : ∀ i, Integrable (X i 0) μ)
143
+ (hindep : ∀ i, Pairwise (fun j k : ℕ => IndepFun (X i j) (X i k) μ))
144
+ (hident : ∀ i j, IdentDistrib (X i j) (X i 0) μ μ)
145
+ (hmean : ∀ i, ∫ ω, X i 0 ω ∂μ = q M (a i))
146
+ (hmeas : ∀ N, AEStronglyMeasurable (fun ω => limitingLoss (memberAverage M X N ω)) μ)
147
+ (hoff : score M a ≠ (1:ℝ)/2) :
148
+ Tendsto (fun N => ∫ ω, limitingLoss (memberAverage M X N ω) ∂μ)
149
+ atTop (𝓝 (limitingLoss (score M a))) := by
150
+ exact floor_limit_offdiag μ (memberAverage M X) (score M a) hmeas
151
+ (member_average_lgn M a μ X hint hindep hident hmean) hoff
152
+
153
+ theorem floor_limit_offdiag_mixture {Ω : Type*} [MeasurableSpace Ω]
154
+ (M : Domain) (μ : Measure Ω) [IsProbabilityMeasure μ]
155
+ (X : (Fin M.K → Bool) → Fin M.K → ℕ → Ω → ℝ)
156
+ (hint : ∀ a i, Integrable (X a i 0) μ)
157
+ (hindep : ∀ a i, Pairwise (fun j k : ℕ => IndepFun (X a i j) (X a i k) μ))
158
+ (hident : ∀ a i j, IdentDistrib (X a i j) (X a i 0) μ μ)
159
+ (hmean : ∀ a i, ∫ ω, X a i 0 ω ∂μ = q M (a i))
160
+ (hmeas : ∀ a N, AEStronglyMeasurable (fun ω => limitingLoss (memberAverage M (X a) N ω)) μ)
161
+ (hoff : ∀ a, score M a ≠ (1:ℝ)/2) :
162
+ Tendsto (fun N => ∑ a : Fin M.K → Bool, latentMass M a *
163
+ ∫ ω, limitingLoss (memberAverage M (X a) N ω) ∂μ)
164
+ atTop (𝓝 (floor M)) := by
165
+ unfold floor
166
+ apply tendsto_finset_sum
167
+ intro a _
168
+ exact tendsto_const_nhds.mul (floor_limit_offdiag_M0 M a μ (X a)
169
+ (hint a) (hindep a) (hident a) (hmean a) (hmeas a) (hoff a))
170
+
171
+ end Obligations045.M0
@@ -0,0 +1,5 @@
1
+ import Obligations045.M0Limit
2
+ import Obligations045.M0Coincidence
3
+ import Obligations045.ConsensusGrid
4
+ import Obligations045.M0Offdiag
5
+ import Obligations045.M0Diagonal
@@ -0,0 +1,116 @@
1
+ {
2
+ "version": "1.1.0",
3
+ "packagesDir": ".lake/packages",
4
+ "packages": [
5
+ {
6
+ "url": "https://github.com/leanprover-community/plausible",
7
+ "type": "git",
8
+ "subDir": null,
9
+ "scope": "leanprover-community",
10
+ "rev": "77e08eddc486491d7b9e470926b3dbe50319451a",
11
+ "name": "plausible",
12
+ "manifestFile": "lake-manifest.json",
13
+ "inputRev": "main",
14
+ "inherited": true,
15
+ "configFile": "lakefile.toml"
16
+ },
17
+ {
18
+ "url": "https://github.com/leanprover-community/LeanSearchClient",
19
+ "type": "git",
20
+ "subDir": null,
21
+ "scope": "leanprover-community",
22
+ "rev": "25078369972d295301f5a1e53c3e5850cf6d9d4c",
23
+ "name": "LeanSearchClient",
24
+ "manifestFile": "lake-manifest.json",
25
+ "inputRev": "main",
26
+ "inherited": true,
27
+ "configFile": "lakefile.toml"
28
+ },
29
+ {
30
+ "url": "https://github.com/leanprover-community/import-graph",
31
+ "type": "git",
32
+ "subDir": null,
33
+ "scope": "leanprover-community",
34
+ "rev": "e6a9f0f5ee3ccf7443a0070f92b62f8db12ae82b",
35
+ "name": "importGraph",
36
+ "manifestFile": "lake-manifest.json",
37
+ "inputRev": "main",
38
+ "inherited": true,
39
+ "configFile": "lakefile.toml"
40
+ },
41
+ {
42
+ "url": "https://github.com/leanprover-community/ProofWidgets4",
43
+ "type": "git",
44
+ "subDir": null,
45
+ "scope": "leanprover-community",
46
+ "rev": "c4919189477c3221e6a204008998b0d724f49904",
47
+ "name": "proofwidgets",
48
+ "manifestFile": "lake-manifest.json",
49
+ "inputRev": "v0.0.57",
50
+ "inherited": true,
51
+ "configFile": "lakefile.lean"
52
+ },
53
+ {
54
+ "url": "https://github.com/leanprover-community/aesop",
55
+ "type": "git",
56
+ "subDir": null,
57
+ "scope": "leanprover-community",
58
+ "rev": "5d50b08dedd7d69b3d9b3176e0d58a23af228884",
59
+ "name": "aesop",
60
+ "manifestFile": "lake-manifest.json",
61
+ "inputRev": "master",
62
+ "inherited": true,
63
+ "configFile": "lakefile.toml"
64
+ },
65
+ {
66
+ "url": "https://github.com/leanprover-community/quote4",
67
+ "type": "git",
68
+ "subDir": null,
69
+ "scope": "leanprover-community",
70
+ "rev": "fa4f7f15d97591a9cf3aa7724ba371c7fc6dda02",
71
+ "name": "Qq",
72
+ "manifestFile": "lake-manifest.json",
73
+ "inputRev": "master",
74
+ "inherited": true,
75
+ "configFile": "lakefile.toml"
76
+ },
77
+ {
78
+ "url": "https://github.com/leanprover-community/batteries",
79
+ "type": "git",
80
+ "subDir": null,
81
+ "scope": "leanprover-community",
82
+ "rev": "f5d04a9c4973d401c8c92500711518f7c656f034",
83
+ "name": "batteries",
84
+ "manifestFile": "lake-manifest.json",
85
+ "inputRev": "main",
86
+ "inherited": true,
87
+ "configFile": "lakefile.toml"
88
+ },
89
+ {
90
+ "url": "https://github.com/leanprover/lean4-cli",
91
+ "type": "git",
92
+ "subDir": null,
93
+ "scope": "leanprover",
94
+ "rev": "02dbd02bc00ec4916e99b04b2245b30200e200d0",
95
+ "name": "Cli",
96
+ "manifestFile": "lake-manifest.json",
97
+ "inputRev": "main",
98
+ "inherited": true,
99
+ "configFile": "lakefile.toml"
100
+ },
101
+ {
102
+ "url": "https://github.com/leanprover-community/mathlib4.git",
103
+ "type": "git",
104
+ "subDir": null,
105
+ "scope": "",
106
+ "rev": "c44e0c8ee63ca166450922a373c7409c5d26b00b",
107
+ "name": "mathlib",
108
+ "manifestFile": "lake-manifest.json",
109
+ "inputRev": "c44e0c8ee63ca166450922a373c7409c5d26b00b",
110
+ "inherited": false,
111
+ "configFile": "lakefile.lean"
112
+ }
113
+ ],
114
+ "name": "obligations_lineage",
115
+ "lakeDir": ".lake"
116
+ }