@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
@@ -0,0 +1,166 @@
1
+ {
2
+ "id": "m1-offdiag-limit",
3
+ "block": "m1-offdiag",
4
+ "claim": "M1-offdiagonal-full-generator-probability-limit",
5
+ "generalDiagonal": {
6
+ "status": "open",
7
+ "actualCLTProved": false
8
+ },
9
+ "m1Boundary": {
10
+ "model": "binary-M1-ancestor-first-fixed-quota@1",
11
+ "finiteIdentityOnly": false,
12
+ "offdiagLimitProved": true,
13
+ "allLatentScoresOffdiagRequired": true,
14
+ "diagonalLimitProved": false,
15
+ "actualCalibrationCertified": false,
16
+ "publicM1APIImplemented": false,
17
+ "originalThreeCards": "open"
18
+ },
19
+ "proof": {
20
+ "files": [
21
+ {
22
+ "path": "proofs/m1-046-offdiag/M0Bridge.lean",
23
+ "sha256": "sha256:b438b2961b93c62787275e158a90b534a400de8646a0552b099863fa5227c21e"
24
+ },
25
+ {
26
+ "path": "proofs/m1-046-offdiag/M0Diagonal046.lean",
27
+ "sha256": "sha256:c0403d40e1c6849045bf70eab2854eeac28a2464783e06ce03f2f36e33c2146c"
28
+ },
29
+ {
30
+ "path": "proofs/m1-046-offdiag/M0Moments046.lean",
31
+ "sha256": "sha256:06780115a2b44a77a9be72673350332b77045489dba7ff081beecd48b8d51a73"
32
+ },
33
+ {
34
+ "path": "proofs/m1-046-offdiag/M1Bridge046.lean",
35
+ "sha256": "sha256:a21ac1dedb07af4f28752238edd564293967d8177b75979feead44f01f347b9c"
36
+ },
37
+ {
38
+ "path": "proofs/m1-046-offdiag/M1Offdiag046.lean",
39
+ "sha256": "sha256:faf6ef0b27049ff4cb89db0e216102239b8bb3f29a76e2a66442fb7c9b6ccd2b"
40
+ },
41
+ {
42
+ "path": "proofs/m1-046-offdiag/Obligations045/M0Limit.lean",
43
+ "sha256": "sha256:aedc88b8ba4edf884cacec78da82eef29187ded0199d44674466425af1585b8c"
44
+ },
45
+ {
46
+ "path": "proofs/m1-046-offdiag/Obligations045/M0Offdiag.lean",
47
+ "sha256": "sha256:af8a95d00cd0956acaec06deeebe7156dccf156b698408275c3e710f58c1c1e8"
48
+ },
49
+ {
50
+ "path": "proofs/m1-046-offdiag/lake-manifest.json",
51
+ "sha256": "sha256:fc8b4ba4b08bbcadf736bc8bcf803b5fdedfebafb57dec61ce0106e99964285d"
52
+ },
53
+ {
54
+ "path": "proofs/m1-046-offdiag/lakefile.toml",
55
+ "sha256": "sha256:1853d377780647756b113f9b077ea95cde54c98fb5e570902c736ab5799f5af9"
56
+ },
57
+ {
58
+ "path": "proofs/m1-046-offdiag/lean-toolchain",
59
+ "sha256": "sha256:55e97be96000b5e9e290c9e74482e5e317861499a5540353ce845471bded8cea"
60
+ }
61
+ ],
62
+ "mathlib": "c44e0c8ee63ca166450922a373c7409c5d26b00b",
63
+ "auditedTheorems": [
64
+ "Obligations046.M1Offdiag.q_bounds",
65
+ "Obligations046.M1Offdiag.mean_ratio_limit",
66
+ "Obligations046.M1Offdiag.variance_le",
67
+ "Obligations046.M1Offdiag.loss_left_bound",
68
+ "Obligations046.M1Offdiag.loss_right_bound",
69
+ "Obligations046.M1Offdiag.weights_nonneg",
70
+ "Obligations046.M1Offdiag.weights_sum",
71
+ "Obligations046.M1Offdiag.conditional_member_error",
72
+ "Obligations046.M1Offdiag.centered_second",
73
+ "Obligations046.M1Offdiag.conditional_gap_bound",
74
+ "Obligations046.M1Offdiag.tail_bound_limit",
75
+ "Obligations046.M1Offdiag.conditional_offdiag_limit",
76
+ "Obligations046.M1Offdiag.implementation_offdiag_limit",
77
+ "Obligations046.M1Offdiag.generator_offdiag_limit",
78
+ "Obligations046.M1Offdiag.example_offdiag",
79
+ "Obligations046.M1Offdiag.example_generator_limit"
80
+ ],
81
+ "allowedAxioms": [
82
+ "propext",
83
+ "Classical.choice",
84
+ "Quot.sound"
85
+ ]
86
+ },
87
+ "samples": {
88
+ "inputs": [
89
+ "contracts/m1-subcauses.json",
90
+ "contracts/m1-offdiag-limit.json",
91
+ "samples/laws/m1-offdiag-limit/yes/sample.json",
92
+ "samples/laws/m1-offdiag-limit/no/sample.json",
93
+ "vectors/laws/policy.json"
94
+ ],
95
+ "digests": {
96
+ "contracts/m1-subcauses.json": "sha256:8213a6cc3a5ca80a6adb594b9d8f28504c9566200a6d585f675585db2c8d45cc",
97
+ "contracts/m1-offdiag-limit.json": "sha256:80ccec0916db5da35fbff2284aa739cb64bd22f8d7eaa308a43e5d44c4e68177",
98
+ "samples/laws/m1-offdiag-limit/yes/sample.json": "sha256:235ff6999c346055c4e22207e5a2dfdc4633ba016e6d29fe264f2758664b3864",
99
+ "samples/laws/m1-offdiag-limit/no/sample.json": "sha256:813962d712a8cda54caa9fec008abf826730e1eb9ac628a4a56d6ab2619d52dc",
100
+ "vectors/laws/policy.json": "sha256:e941ce8cd86f0ec31621fa6b4deef9685dc1fead283f4b2fe22a8a58e3d5d939"
101
+ }
102
+ },
103
+ "capturePolicy": {
104
+ "timeoutMs": 25000,
105
+ "responseBytes": 65536
106
+ },
107
+ "execution": {
108
+ "profile": "lean-kernel@1",
109
+ "project": "proofs/m1-046-offdiag",
110
+ "toolchain": "leanprover/lean4:v4.19.0",
111
+ "compilerIdentity": "6caaee842e94",
112
+ "targets": [
113
+ "M1Offdiag046"
114
+ ],
115
+ "sources": [
116
+ "M1Offdiag046.lean"
117
+ ],
118
+ "auditImports": [
119
+ "M1Offdiag046"
120
+ ],
121
+ "identityInputs": [
122
+ "proofs/m1-046-offdiag/M0Bridge.lean",
123
+ "proofs/m1-046-offdiag/M0Diagonal046.lean",
124
+ "proofs/m1-046-offdiag/M0Moments046.lean",
125
+ "proofs/m1-046-offdiag/M1Bridge046.lean",
126
+ "proofs/m1-046-offdiag/M1Offdiag046.lean",
127
+ "proofs/m1-046-offdiag/Obligations045/M0Limit.lean",
128
+ "proofs/m1-046-offdiag/Obligations045/M0Offdiag.lean",
129
+ "proofs/m1-046-offdiag/lake-manifest.json",
130
+ "proofs/m1-046-offdiag/lakefile.toml",
131
+ "proofs/m1-046-offdiag/lean-toolchain",
132
+ "vectors/laws/m1-offdiag-limit.lean.json",
133
+ "contracts/m1-subcauses.json",
134
+ "contracts/m1-offdiag-limit.json",
135
+ "samples/laws/m1-offdiag-limit/yes/sample.json",
136
+ "samples/laws/m1-offdiag-limit/no/sample.json",
137
+ "vectors/laws/policy.json"
138
+ ],
139
+ "negative": {
140
+ "name": "diagonal-denominator-omitted",
141
+ "source": "import M1Bridge046\nimport M0Moments046\n\nopen scoped BigOperators\nopen Filter Topology MeasureTheory ProbabilityTheory\nnoncomputable section\nopen Classical Obligations046.M1Bridge Obligations046.Bridge\nnamespace Obligations046.M1Offdiag\n\n/-- Actual finite conditional mean and variance; no convergence premise. -/\ndef mean (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) : \u211d :=\n \u2211 i : Fin M.base.K, (sizes M N i : \u211d)*q M A B i\ndef variance (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) : \u211d :=\n \u2211 i : Fin M.base.K, (sizes M N i : \u211d)*q M A B i*(1-q M A B i)\ndef score (M : Model) (A : Ancestors M) (B : Leaves M) : \u211d :=\n \u2211 i : Fin M.base.K, M.base.w i*q M A B i\n\ntheorem q_bounds (M : Model) (A : Ancestors M) (B : Leaves M) (i : Fin M.base.K) :\n 0 \u2264 q M A B i \u2227 q M A B i \u2264 1 := by\n have hn (e : Fin 4) : 0 \u2264 branchMass M.base.p M.base.c M.c2 e :=\n branch_nonneg _ _ _ (by linarith [M.base.p_half]) M.base.p_lt_one.le\n M.base.c_nonneg M.base.c_lt_one.le M.c2_nonneg M.c2_lt_one.le e\n have ht : 0 \u2264 \u2211 e : Fin 4, if branchBit (A (M.parent i)) (B i) e = true\n then branchMass M.base.p M.base.c M.c2 e else 0 := by\n apply Finset.sum_nonneg\n intro e _\n split_ifs\n \u00b7 exact hn e\n \u00b7 exact le_rfl\n have hf : 0 \u2264 \u2211 e : Fin 4, if branchBit (A (M.parent i)) (B i) e = false\n then branchMass M.base.p M.base.c M.c2 e else 0 := by\n apply Finset.sum_nonneg\n intro e _\n split_ifs\n \u00b7 exact hn e\n \u00b7 exact le_rfl\n rw [branch_bit_fiber] at ht hf\n change 0 \u2264 q M A B i at ht\n change 0 \u2264 1-q M A B i at hf\n exact \u27e8ht, by linarith\u27e9\n\ntheorem mean_ratio_limit (M : Model) (A : Ancestors M) (B : Leaves M) :\n Tendsto (fun N : \u2115 => mean M A B N/(N:\u211d)) atTop (\ud835\udcdd (score M A B)) := by\n have h := tendsto_finset_sum Finset.univ (fun (i : Fin M.base.K) _ =>\n (Obligations045.M0.allocation_ratio M.base i).mul_const (q M A B i))\n convert h using 1\n funext N\n simp only [mean, score, Finset.sum_div, div_mul_eq_mul_div]\n\ntheorem variance_le (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n variance M A B N \u2264 (N:\u211d)/4 := by\n have hs : \u2211 i : Fin M.base.K, (sizes M N i : \u211d) = (N:\u211d) := by\n exact_mod_cast (by simpa only [Fin.sum_univ_eq_sum_range] using\n Obligations045.M0.allocation_sum M.base N)\n calc\n _ \u2264 \u2211 i : Fin M.base.K, (sizes M N i : \u211d)*(1/4) := by\n apply Finset.sum_le_sum\n intro i _\n have h : q M A B i*(1-q M A B i) \u2264 1/4 := by\n nlinarith [sq_nonneg (q M A B i-1/2)]\n simpa only [mul_assoc] using mul_le_mul_of_nonneg_left h (Nat.cast_nonneg (sizes M N i))\n _ = _ := by rw [\u2190 Finset.sum_mul, hs]; ring\n\n/-- Off-diagonal loss is locally constant; only a squared deviation can change it. -/\ntheorem loss_left_bound (x m eps : \u211d) (he : 0 < eps) (hm : m+eps \u2264 1/2) :\n |Obligations045.M0.limitingLoss x-1| \u2264 (x-m)^2/eps^2 := by\n by_cases hx : x < (1:\u211d)/2\n \u00b7 simp only [Obligations045.M0.limitingLoss, if_pos hx, sub_self, abs_zero]\n positivity\n \u00b7 have hx' : (1:\u211d)/2 \u2264 x := le_of_not_gt hx\n have hd : eps^2 \u2264 (x-m)^2 := by\n nlinarith [sq_nonneg (x-m-eps)]\n have hu : (1:\u211d) \u2264 (x-m)^2/eps^2 := by\n exact (le_div_iff\u2080 (sq_pos_of_pos he)).mpr (by simpa using hd)\n have hb : |Obligations045.M0.limitingLoss x-1| \u2264 1 := by\n unfold Obligations045.M0.limitingLoss\n split_ifs <;> norm_num [abs_div]\n exact hb.trans hu\n\ntheorem loss_right_bound (x m eps : \u211d) (he : 0 < eps) (hm : 1/2 \u2264 m-eps) :\n |Obligations045.M0.limitingLoss x| \u2264 (x-m)^2/eps^2 := by\n by_cases hx : (1:\u211d)/2 < x\n \u00b7 have hn : \u00ac x < (1:\u211d)/2 := not_lt.mpr hx.le\n simp only [Obligations045.M0.limitingLoss, if_neg hn, if_neg (Ne.symm hx.ne), abs_zero]\n positivity\n \u00b7 have hx' : x \u2264 (1:\u211d)/2 := le_of_not_gt hx\n have hd : eps^2 \u2264 (x-m)^2 := by\n nlinarith [sq_nonneg (m-x-eps)]\n have hu : (1:\u211d) \u2264 (x-m)^2/eps^2 := by\n exact (le_div_iff\u2080 (sq_pos_of_pos he)).mpr (by simpa using hd)\n have hb : |Obligations045.M0.limitingLoss x| \u2264 1 := by\n unfold Obligations045.M0.limitingLoss\n split_ifs <;> norm_num [abs_div]\n exact hb.trans hu\n\nabbrev members (M : Model) (N : \u2115) := World (sizes M N)\ndef weights (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115)\n (x : members M N) := jointMass (sizes M N) (q M A B) x\n\ntheorem weights_nonneg (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115)\n (x : members M N) : 0 \u2264 weights M A B N x := by\n unfold weights jointMass\n exact Finset.prod_nonneg (fun i _ => mass_nonneg _ (q_bounds M A B i).1\n (q_bounds M A B i).2 (x i))\n\ntheorem weights_sum (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n \u2211 x : members M N, weights M A B N x = 1 := jointMass_sum _ _\n\ntheorem conditional_member_error (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n binomialError M N A B = \u2211 x : members M N, weights M A B N x*\n Obligations045.M0.fairLoss (correctCount x) N := by\n symm\n simpa only [weights, binomialError, correctCount, count] using\n joint_count_pushforward (sizes M N) (q M A B)\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\ntheorem centered_second (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n (\u2211 x : members M N, weights M A B N x*((correctCount x:\u211d)-mean M A B N)^2) =\n variance M A B N := by\n have h := Obligations046.Moments.member_total_centered_second (sizes M N) (q M A B)\n (fun i => (q_bounds M A B i).1) (fun i => (q_bounds M A B i).2)\n rw [memberLaw_expectation] at h\n exact h\n\n/-- A direct finite Chebyshev bound. The test function is bounded POINTWISE; no\nindependence between pair scores, ambient process, CLT or limit is assumed. -/\ntheorem conditional_gap_bound (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115)\n (hN : 0 < N) (eps target : \u211d) (he : 0 < eps)\n (hpoint : \u2200 x : \u211d, |Obligations045.M0.limitingLoss x-target| \u2264\n (x-mean M A B N/(N:\u211d))^2/eps^2) :\n |binomialError M N A B-target| \u2264 1/(4*(N:\u211d)*eps^2) := by\n have hn : (0:\u211d) < N := by exact_mod_cast hN\n have hd : 0 < (N:\u211d)^2*eps^2 := by positivity\n have hnorm := weights_sum M A B N\n have hrew : binomialError M N A B-target =\n \u2211 x : members M N, weights M A B N x*(Obligations045.M0.fairLoss (correctCount x) N-target) := by\n rw [conditional_member_error]\n simp only [mul_sub, Finset.sum_sub_distrib, \u2190 Finset.sum_mul, hnorm, one_mul]\n rw [hrew]\n calc\n _ \u2264 \u2211 x : members M N, |weights M A B N x*\n (Obligations045.M0.fairLoss (correctCount x) N-target)| := Finset.abs_sum_le_sum_abs _ _\n _ = \u2211 x : members M N, weights M A B N x*\n |Obligations045.M0.fairLoss (correctCount x) N-target| := by\n apply Finset.sum_congr rfl\n intro x _\n rw [abs_mul, abs_of_nonneg (weights_nonneg M A B N x)]\n _ \u2264 \u2211 x : members M N, weights M A B N x*\n (((correctCount x:\u211d)-mean M A B N)^2/((N:\u211d)^2*eps^2)) := by\n apply Finset.sum_le_sum\n intro x _\n apply mul_le_mul_of_nonneg_left _ (weights_nonneg M A B N x)\n rw [fair_loss_average_bridge _ _ hN]\n have h := hpoint ((correctCount x:\u211d)/(N:\u211d))\n convert h using 1\n field_simp\n _ = variance M A B N/((N:\u211d)^2*eps^2) := by\n simp_rw [\u2190 mul_div_assoc]\n rw [\u2190 Finset.sum_div, centered_second]\n _ \u2264 ((N:\u211d)/4)/((N:\u211d)^2*eps^2) :=\n div_le_div_of_nonneg_right (variance_le M A B N) hd.le\n _ = _ := by field_simp; ring\n\n/-- This positive O(1/N) bound tends to zero with epsilon FIXED. -/\ntheorem tail_bound_limit (eps : \u211d) :\n Tendsto (fun N : \u2115 => 1/(4*(N:\u211d)*eps^2)) atTop (\ud835\udcdd 0) := by\n have h : Tendsto (fun N : \u2115 => (1:\u211d)/(N:\u211d)) atTop (\ud835\udcdd 0) :=\n tendsto_const_nhds.div_atTop tendsto_natCast_atTop_atTop\n have heq : (fun N : \u2115 => 1/(4*(N:\u211d)*eps^2)) =\n (fun N : \u2115 => ((1:\u211d)/(N:\u211d))/(4*eps^2)) := by funext N; ring\n rw [heq]\n simpa using h.div_const (4*eps^2)\n\n/-- New finite M1 conditional probability limit, derived from quota convergence\nand the finite generator/binomial law; no convergence premise or ambient iid oracle. -/\ntheorem conditional_offdiag_limit (M : Model) (A : Ancestors M) (B : Leaves M)\n (hoff : score M A B \u2260 (1:\u211d)/2) :\n Tendsto (fun N : \u2115 => binomialError M N A B) atTop\n (\ud835\udcdd (Obligations045.M0.limitingLoss (score M A B))) := by\n by_cases hs : score M A B < (1:\u211d)/2\n \u00b7 let eps : \u211d := (1/2-score M A B)/2\n have he : 0 < eps := by dsimp [eps]; linarith\n have hm : \u2200\u1da0 N in atTop, mean M A B N/(N:\u211d)+eps \u2264 (1:\u211d)/2 := by\n have h := (mean_ratio_limit M A B).eventually\n (Iio_mem_nhds (show score M A B < (1:\u211d)/2-eps by dsimp [eps]; linarith))\n filter_upwards [h] with N hN\n linarith\n have hb : \u2200\u1da0 N in atTop, |binomialError M N A B-1| \u2264 1/(4*(N:\u211d)*eps^2) := by\n filter_upwards [hm, eventually_ge_atTop 1] with N hm hN\n exact conditional_gap_bound M A B N (by omega) eps 1 he\n (fun x => loss_left_bound x _ eps he hm)\n have h := squeeze_zero' (Eventually.of_forall (fun N => abs_nonneg (binomialError M N A B-1))) hb\n (tail_bound_limit eps)\n rw [Obligations045.M0.limitingLoss, if_pos hs]\n exact (tendsto_iff_norm_sub_tendsto_zero).mpr (by simpa only [Real.norm_eq_abs] using h)\n \u00b7 have hs' : (1:\u211d)/2 < score M A B := lt_of_le_of_ne (le_of_not_gt hs) (Ne.symm hoff)\n let eps : \u211d := (score M A B-1/2)/2\n have he : 0 < eps := by dsimp [eps]; linarith\n have hm : \u2200\u1da0 N in atTop, (1:\u211d)/2 \u2264 mean M A B N/(N:\u211d)-eps := by\n have h := (mean_ratio_limit M A B).eventually\n (Ioi_mem_nhds (show (1:\u211d)/2+eps < score M A B by dsimp [eps]; linarith))\n filter_upwards [h] with N hN\n linarith\n have hb : \u2200\u1da0 N in atTop, |binomialError M N A B| \u2264 1/(4*(N:\u211d)*eps^2) := by\n filter_upwards [hm, eventually_ge_atTop 1] with N hm hN\n simpa only [sub_zero] using conditional_gap_bound M A B N (by omega) eps 0 he\n (fun x => by simpa only [sub_zero] using loss_right_bound x _ eps he hm)\n have h := squeeze_zero' (Eventually.of_forall (fun N => abs_nonneg (binomialError M N A B))) hb\n (tail_bound_limit eps)\n rw [Obligations045.M0.limitingLoss, if_neg hs, if_neg hoff]\n exact (tendsto_iff_norm_sub_tendsto_zero).mpr (by simpa only [Real.norm_eq_abs, sub_zero] using h)\n\ndef thresholdFunctional (M : Model) : \u211d :=\n \u2211 A : Ancestors M, \u2211 B : Leaves M,\n latentMass M A B * Obligations045.M0.limitingLoss (score M A B)\n\n/-- All latent configurations are positive mass forp in(1/2,1). No diagonal\nconfiguration is silently discarded or called a fork. -/\ntheorem implementation_offdiag_limit (M : Model)\n (hoff : \u2200 (A : Ancestors M) (B : Leaves M), score M A B \u2260 (1:\u211d)/2) :\n Tendsto (implementationError M) atTop (\ud835\udcdd (thresholdFunctional M)) := by\n unfold implementationError thresholdFunctional\n apply tendsto_finset_sum\n intro A _\n apply tendsto_finset_sum\n intro B _\n exact tendsto_const_nhds.mul (conditional_offdiag_limit M A B (hoff A B))\n\n/-- Limit of the ACTUAL full generator probabilities via the admitted exact bridge. -/\ntheorem generator_offdiag_limit (M : Model)\n (hoff : \u2200 (A : Ancestors M) (B : Leaves M), score M A B \u2260 (1:\u211d)/2) :\n Tendsto (fun N : \u2115 => \u222b x, Obligations045.M0.fairLoss\n (\u2211 i, (primitiveCounts M N x.1.1 x.1.2 x.2 i : \u2115)) N \u2202(fullLaw M N).toMeasure)\n atTop (\ud835\udcdd (thresholdFunctional M)) := by\n simpa only [full_generator_error_bridge] using implementation_offdiag_limit M hoff\n\n/-- The existing exact shared-parent example: genuinely nonzero rates on both levels. -/\ndef exampleModel : Model where\n base := {\n K := 2\n K_pos := by norm_num\n p := 2/3\n c := 1/2\n p_half := by norm_num\n p_lt_one := by norm_num\n c_nonneg := by norm_num\n c_lt_one := by norm_num\n w := fun _ => 1/2\n w_nonneg := fun _ => by norm_num\n weights_sum := by norm_num [Finset.sum_range_succ] }\n ancestors := 1\n parent := fun _ => 0\n c2 := 1/2\n c2_nonneg := by norm_num\n c2_lt_one := by norm_num\n\ntheorem example_offdiag (A : Ancestors exampleModel) (B : Leaves exampleModel) :\n score exampleModel A B \u2260 (1:\u211d)/2 := by\n change (\u2211 i : Fin 2, (1/2:\u211d)*success (2/3) (1/2) (1/2) (A (0:Fin 1)) (B i)) \u2260 1/2\n cases ha : A (0:Fin 1) <;> cases hb : B (0:Fin 2) <;> cases hc : B (1:Fin 2) <;>\n norm_num [success, Fin.sum_univ_succ, ha, hb, hc]\n\ntheorem example_generator_limit :\n Tendsto (fun N : \u2115 => \u222b x, Obligations045.M0.fairLoss\n (\u2211 i, (primitiveCounts exampleModel N x.1.1 x.1.2 x.2 i : \u2115)) N\n \u2202(fullLaw exampleModel N).toMeasure)\n atTop (\ud835\udcdd (thresholdFunctional exampleModel)) :=\n generator_offdiag_limit exampleModel example_offdiag\n\nend Obligations046.M1Offdiag\n\nopen Obligations046.M1Offdiag\nexample : |Obligations045.M0.limitingLoss 0-Obligations045.M0.limitingLoss (1/2)| \u2264 ((0:\u211d)-1/2)^2/(1/2-1/2)^2 := by norm_num [Obligations045.M0.limitingLoss, abs_div, Fintype.sum_bool, Obligations046.M1Bridge.bernMass]\n",
142
+ "exitCode": 1,
143
+ "cause": [
144
+ "unsolved goals"
145
+ ]
146
+ },
147
+ "extraNegatives": [
148
+ {
149
+ "name": "mean-margin-omitted",
150
+ "source": "import M1Bridge046\nimport M0Moments046\n\nopen scoped BigOperators\nopen Filter Topology MeasureTheory ProbabilityTheory\nnoncomputable section\nopen Classical Obligations046.M1Bridge Obligations046.Bridge\nnamespace Obligations046.M1Offdiag\n\n/-- Actual finite conditional mean and variance; no convergence premise. -/\ndef mean (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) : \u211d :=\n \u2211 i : Fin M.base.K, (sizes M N i : \u211d)*q M A B i\ndef variance (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) : \u211d :=\n \u2211 i : Fin M.base.K, (sizes M N i : \u211d)*q M A B i*(1-q M A B i)\ndef score (M : Model) (A : Ancestors M) (B : Leaves M) : \u211d :=\n \u2211 i : Fin M.base.K, M.base.w i*q M A B i\n\ntheorem q_bounds (M : Model) (A : Ancestors M) (B : Leaves M) (i : Fin M.base.K) :\n 0 \u2264 q M A B i \u2227 q M A B i \u2264 1 := by\n have hn (e : Fin 4) : 0 \u2264 branchMass M.base.p M.base.c M.c2 e :=\n branch_nonneg _ _ _ (by linarith [M.base.p_half]) M.base.p_lt_one.le\n M.base.c_nonneg M.base.c_lt_one.le M.c2_nonneg M.c2_lt_one.le e\n have ht : 0 \u2264 \u2211 e : Fin 4, if branchBit (A (M.parent i)) (B i) e = true\n then branchMass M.base.p M.base.c M.c2 e else 0 := by\n apply Finset.sum_nonneg\n intro e _\n split_ifs\n \u00b7 exact hn e\n \u00b7 exact le_rfl\n have hf : 0 \u2264 \u2211 e : Fin 4, if branchBit (A (M.parent i)) (B i) e = false\n then branchMass M.base.p M.base.c M.c2 e else 0 := by\n apply Finset.sum_nonneg\n intro e _\n split_ifs\n \u00b7 exact hn e\n \u00b7 exact le_rfl\n rw [branch_bit_fiber] at ht hf\n change 0 \u2264 q M A B i at ht\n change 0 \u2264 1-q M A B i at hf\n exact \u27e8ht, by linarith\u27e9\n\ntheorem mean_ratio_limit (M : Model) (A : Ancestors M) (B : Leaves M) :\n Tendsto (fun N : \u2115 => mean M A B N/(N:\u211d)) atTop (\ud835\udcdd (score M A B)) := by\n have h := tendsto_finset_sum Finset.univ (fun (i : Fin M.base.K) _ =>\n (Obligations045.M0.allocation_ratio M.base i).mul_const (q M A B i))\n convert h using 1\n funext N\n simp only [mean, score, Finset.sum_div, div_mul_eq_mul_div]\n\ntheorem variance_le (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n variance M A B N \u2264 (N:\u211d)/4 := by\n have hs : \u2211 i : Fin M.base.K, (sizes M N i : \u211d) = (N:\u211d) := by\n exact_mod_cast (by simpa only [Fin.sum_univ_eq_sum_range] using\n Obligations045.M0.allocation_sum M.base N)\n calc\n _ \u2264 \u2211 i : Fin M.base.K, (sizes M N i : \u211d)*(1/4) := by\n apply Finset.sum_le_sum\n intro i _\n have h : q M A B i*(1-q M A B i) \u2264 1/4 := by\n nlinarith [sq_nonneg (q M A B i-1/2)]\n simpa only [mul_assoc] using mul_le_mul_of_nonneg_left h (Nat.cast_nonneg (sizes M N i))\n _ = _ := by rw [\u2190 Finset.sum_mul, hs]; ring\n\n/-- Off-diagonal loss is locally constant; only a squared deviation can change it. -/\ntheorem loss_left_bound (x m eps : \u211d) (he : 0 < eps) (hm : m+eps \u2264 1/2) :\n |Obligations045.M0.limitingLoss x-1| \u2264 (x-m)^2/eps^2 := by\n by_cases hx : x < (1:\u211d)/2\n \u00b7 simp only [Obligations045.M0.limitingLoss, if_pos hx, sub_self, abs_zero]\n positivity\n \u00b7 have hx' : (1:\u211d)/2 \u2264 x := le_of_not_gt hx\n have hd : eps^2 \u2264 (x-m)^2 := by\n nlinarith [sq_nonneg (x-m-eps)]\n have hu : (1:\u211d) \u2264 (x-m)^2/eps^2 := by\n exact (le_div_iff\u2080 (sq_pos_of_pos he)).mpr (by simpa using hd)\n have hb : |Obligations045.M0.limitingLoss x-1| \u2264 1 := by\n unfold Obligations045.M0.limitingLoss\n split_ifs <;> norm_num [abs_div]\n exact hb.trans hu\n\ntheorem loss_right_bound (x m eps : \u211d) (he : 0 < eps) (hm : 1/2 \u2264 m-eps) :\n |Obligations045.M0.limitingLoss x| \u2264 (x-m)^2/eps^2 := by\n by_cases hx : (1:\u211d)/2 < x\n \u00b7 have hn : \u00ac x < (1:\u211d)/2 := not_lt.mpr hx.le\n simp only [Obligations045.M0.limitingLoss, if_neg hn, if_neg (Ne.symm hx.ne), abs_zero]\n positivity\n \u00b7 have hx' : x \u2264 (1:\u211d)/2 := le_of_not_gt hx\n have hd : eps^2 \u2264 (x-m)^2 := by\n nlinarith [sq_nonneg (m-x-eps)]\n have hu : (1:\u211d) \u2264 (x-m)^2/eps^2 := by\n exact (le_div_iff\u2080 (sq_pos_of_pos he)).mpr (by simpa using hd)\n have hb : |Obligations045.M0.limitingLoss x| \u2264 1 := by\n unfold Obligations045.M0.limitingLoss\n split_ifs <;> norm_num [abs_div]\n exact hb.trans hu\n\nabbrev members (M : Model) (N : \u2115) := World (sizes M N)\ndef weights (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115)\n (x : members M N) := jointMass (sizes M N) (q M A B) x\n\ntheorem weights_nonneg (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115)\n (x : members M N) : 0 \u2264 weights M A B N x := by\n unfold weights jointMass\n exact Finset.prod_nonneg (fun i _ => mass_nonneg _ (q_bounds M A B i).1\n (q_bounds M A B i).2 (x i))\n\ntheorem weights_sum (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n \u2211 x : members M N, weights M A B N x = 1 := jointMass_sum _ _\n\ntheorem conditional_member_error (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n binomialError M N A B = \u2211 x : members M N, weights M A B N x*\n Obligations045.M0.fairLoss (correctCount x) N := by\n symm\n simpa only [weights, binomialError, correctCount, count] using\n joint_count_pushforward (sizes M N) (q M A B)\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\ntheorem centered_second (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n (\u2211 x : members M N, weights M A B N x*((correctCount x:\u211d)-mean M A B N)^2) =\n variance M A B N := by\n have h := Obligations046.Moments.member_total_centered_second (sizes M N) (q M A B)\n (fun i => (q_bounds M A B i).1) (fun i => (q_bounds M A B i).2)\n rw [memberLaw_expectation] at h\n exact h\n\n/-- A direct finite Chebyshev bound. The test function is bounded POINTWISE; no\nindependence between pair scores, ambient process, CLT or limit is assumed. -/\ntheorem conditional_gap_bound (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115)\n (hN : 0 < N) (eps target : \u211d) (he : 0 < eps)\n (hpoint : \u2200 x : \u211d, |Obligations045.M0.limitingLoss x-target| \u2264\n (x-mean M A B N/(N:\u211d))^2/eps^2) :\n |binomialError M N A B-target| \u2264 1/(4*(N:\u211d)*eps^2) := by\n have hn : (0:\u211d) < N := by exact_mod_cast hN\n have hd : 0 < (N:\u211d)^2*eps^2 := by positivity\n have hnorm := weights_sum M A B N\n have hrew : binomialError M N A B-target =\n \u2211 x : members M N, weights M A B N x*(Obligations045.M0.fairLoss (correctCount x) N-target) := by\n rw [conditional_member_error]\n simp only [mul_sub, Finset.sum_sub_distrib, \u2190 Finset.sum_mul, hnorm, one_mul]\n rw [hrew]\n calc\n _ \u2264 \u2211 x : members M N, |weights M A B N x*\n (Obligations045.M0.fairLoss (correctCount x) N-target)| := Finset.abs_sum_le_sum_abs _ _\n _ = \u2211 x : members M N, weights M A B N x*\n |Obligations045.M0.fairLoss (correctCount x) N-target| := by\n apply Finset.sum_congr rfl\n intro x _\n rw [abs_mul, abs_of_nonneg (weights_nonneg M A B N x)]\n _ \u2264 \u2211 x : members M N, weights M A B N x*\n (((correctCount x:\u211d)-mean M A B N)^2/((N:\u211d)^2*eps^2)) := by\n apply Finset.sum_le_sum\n intro x _\n apply mul_le_mul_of_nonneg_left _ (weights_nonneg M A B N x)\n rw [fair_loss_average_bridge _ _ hN]\n have h := hpoint ((correctCount x:\u211d)/(N:\u211d))\n convert h using 1\n field_simp\n _ = variance M A B N/((N:\u211d)^2*eps^2) := by\n simp_rw [\u2190 mul_div_assoc]\n rw [\u2190 Finset.sum_div, centered_second]\n _ \u2264 ((N:\u211d)/4)/((N:\u211d)^2*eps^2) :=\n div_le_div_of_nonneg_right (variance_le M A B N) hd.le\n _ = _ := by field_simp; ring\n\n/-- This positive O(1/N) bound tends to zero with epsilon FIXED. -/\ntheorem tail_bound_limit (eps : \u211d) :\n Tendsto (fun N : \u2115 => 1/(4*(N:\u211d)*eps^2)) atTop (\ud835\udcdd 0) := by\n have h : Tendsto (fun N : \u2115 => (1:\u211d)/(N:\u211d)) atTop (\ud835\udcdd 0) :=\n tendsto_const_nhds.div_atTop tendsto_natCast_atTop_atTop\n have heq : (fun N : \u2115 => 1/(4*(N:\u211d)*eps^2)) =\n (fun N : \u2115 => ((1:\u211d)/(N:\u211d))/(4*eps^2)) := by funext N; ring\n rw [heq]\n simpa using h.div_const (4*eps^2)\n\n/-- New finite M1 conditional probability limit, derived from quota convergence\nand the finite generator/binomial law; no convergence premise or ambient iid oracle. -/\ntheorem conditional_offdiag_limit (M : Model) (A : Ancestors M) (B : Leaves M)\n (hoff : score M A B \u2260 (1:\u211d)/2) :\n Tendsto (fun N : \u2115 => binomialError M N A B) atTop\n (\ud835\udcdd (Obligations045.M0.limitingLoss (score M A B))) := by\n by_cases hs : score M A B < (1:\u211d)/2\n \u00b7 let eps : \u211d := (1/2-score M A B)/2\n have he : 0 < eps := by dsimp [eps]; linarith\n have hm : \u2200\u1da0 N in atTop, mean M A B N/(N:\u211d)+eps \u2264 (1:\u211d)/2 := by\n have h := (mean_ratio_limit M A B).eventually\n (Iio_mem_nhds (show score M A B < (1:\u211d)/2-eps by dsimp [eps]; linarith))\n filter_upwards [h] with N hN\n linarith\n have hb : \u2200\u1da0 N in atTop, |binomialError M N A B-1| \u2264 1/(4*(N:\u211d)*eps^2) := by\n filter_upwards [hm, eventually_ge_atTop 1] with N hm hN\n exact conditional_gap_bound M A B N (by omega) eps 1 he\n (fun x => loss_left_bound x _ eps he hm)\n have h := squeeze_zero' (Eventually.of_forall (fun N => abs_nonneg (binomialError M N A B-1))) hb\n (tail_bound_limit eps)\n rw [Obligations045.M0.limitingLoss, if_pos hs]\n exact (tendsto_iff_norm_sub_tendsto_zero).mpr (by simpa only [Real.norm_eq_abs] using h)\n \u00b7 have hs' : (1:\u211d)/2 < score M A B := lt_of_le_of_ne (le_of_not_gt hs) (Ne.symm hoff)\n let eps : \u211d := (score M A B-1/2)/2\n have he : 0 < eps := by dsimp [eps]; linarith\n have hm : \u2200\u1da0 N in atTop, (1:\u211d)/2 \u2264 mean M A B N/(N:\u211d)-eps := by\n have h := (mean_ratio_limit M A B).eventually\n (Ioi_mem_nhds (show (1:\u211d)/2+eps < score M A B by dsimp [eps]; linarith))\n filter_upwards [h] with N hN\n linarith\n have hb : \u2200\u1da0 N in atTop, |binomialError M N A B| \u2264 1/(4*(N:\u211d)*eps^2) := by\n filter_upwards [hm, eventually_ge_atTop 1] with N hm hN\n simpa only [sub_zero] using conditional_gap_bound M A B N (by omega) eps 0 he\n (fun x => by simpa only [sub_zero] using loss_right_bound x _ eps he hm)\n have h := squeeze_zero' (Eventually.of_forall (fun N => abs_nonneg (binomialError M N A B))) hb\n (tail_bound_limit eps)\n rw [Obligations045.M0.limitingLoss, if_neg hs, if_neg hoff]\n exact (tendsto_iff_norm_sub_tendsto_zero).mpr (by simpa only [Real.norm_eq_abs, sub_zero] using h)\n\ndef thresholdFunctional (M : Model) : \u211d :=\n \u2211 A : Ancestors M, \u2211 B : Leaves M,\n latentMass M A B * Obligations045.M0.limitingLoss (score M A B)\n\n/-- All latent configurations are positive mass forp in(1/2,1). No diagonal\nconfiguration is silently discarded or called a fork. -/\ntheorem implementation_offdiag_limit (M : Model)\n (hoff : \u2200 (A : Ancestors M) (B : Leaves M), score M A B \u2260 (1:\u211d)/2) :\n Tendsto (implementationError M) atTop (\ud835\udcdd (thresholdFunctional M)) := by\n unfold implementationError thresholdFunctional\n apply tendsto_finset_sum\n intro A _\n apply tendsto_finset_sum\n intro B _\n exact tendsto_const_nhds.mul (conditional_offdiag_limit M A B (hoff A B))\n\n/-- Limit of the ACTUAL full generator probabilities via the admitted exact bridge. -/\ntheorem generator_offdiag_limit (M : Model)\n (hoff : \u2200 (A : Ancestors M) (B : Leaves M), score M A B \u2260 (1:\u211d)/2) :\n Tendsto (fun N : \u2115 => \u222b x, Obligations045.M0.fairLoss\n (\u2211 i, (primitiveCounts M N x.1.1 x.1.2 x.2 i : \u2115)) N \u2202(fullLaw M N).toMeasure)\n atTop (\ud835\udcdd (thresholdFunctional M)) := by\n simpa only [full_generator_error_bridge] using implementation_offdiag_limit M hoff\n\n/-- The existing exact shared-parent example: genuinely nonzero rates on both levels. -/\ndef exampleModel : Model where\n base := {\n K := 2\n K_pos := by norm_num\n p := 2/3\n c := 1/2\n p_half := by norm_num\n p_lt_one := by norm_num\n c_nonneg := by norm_num\n c_lt_one := by norm_num\n w := fun _ => 1/2\n w_nonneg := fun _ => by norm_num\n weights_sum := by norm_num [Finset.sum_range_succ] }\n ancestors := 1\n parent := fun _ => 0\n c2 := 1/2\n c2_nonneg := by norm_num\n c2_lt_one := by norm_num\n\ntheorem example_offdiag (A : Ancestors exampleModel) (B : Leaves exampleModel) :\n score exampleModel A B \u2260 (1:\u211d)/2 := by\n change (\u2211 i : Fin 2, (1/2:\u211d)*success (2/3) (1/2) (1/2) (A (0:Fin 1)) (B i)) \u2260 1/2\n cases ha : A (0:Fin 1) <;> cases hb : B (0:Fin 2) <;> cases hc : B (1:Fin 2) <;>\n norm_num [success, Fin.sum_univ_succ, ha, hb, hc]\n\ntheorem example_generator_limit :\n Tendsto (fun N : \u2115 => \u222b x, Obligations045.M0.fairLoss\n (\u2211 i, (primitiveCounts exampleModel N x.1.1 x.1.2 x.2 i : \u2115)) N\n \u2202(fullLaw exampleModel N).toMeasure)\n atTop (\ud835\udcdd (thresholdFunctional exampleModel)) :=\n generator_offdiag_limit exampleModel example_offdiag\n\nend Obligations046.M1Offdiag\n\nopen Obligations046.M1Offdiag\nexample : |Obligations045.M0.limitingLoss 1-1| \u2264 ((1:\u211d)-1)^2/(1/4)^2 := by norm_num [Obligations045.M0.limitingLoss, abs_div, Fintype.sum_bool, Obligations046.M1Bridge.bernMass]\n",
151
+ "exitCode": 1,
152
+ "cause": [
153
+ "unsolved goals"
154
+ ]
155
+ },
156
+ {
157
+ "name": "shared-selectors-as-independent",
158
+ "source": "import M1Bridge046\nimport M0Moments046\n\nopen scoped BigOperators\nopen Filter Topology MeasureTheory ProbabilityTheory\nnoncomputable section\nopen Classical Obligations046.M1Bridge Obligations046.Bridge\nnamespace Obligations046.M1Offdiag\n\n/-- Actual finite conditional mean and variance; no convergence premise. -/\ndef mean (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) : \u211d :=\n \u2211 i : Fin M.base.K, (sizes M N i : \u211d)*q M A B i\ndef variance (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) : \u211d :=\n \u2211 i : Fin M.base.K, (sizes M N i : \u211d)*q M A B i*(1-q M A B i)\ndef score (M : Model) (A : Ancestors M) (B : Leaves M) : \u211d :=\n \u2211 i : Fin M.base.K, M.base.w i*q M A B i\n\ntheorem q_bounds (M : Model) (A : Ancestors M) (B : Leaves M) (i : Fin M.base.K) :\n 0 \u2264 q M A B i \u2227 q M A B i \u2264 1 := by\n have hn (e : Fin 4) : 0 \u2264 branchMass M.base.p M.base.c M.c2 e :=\n branch_nonneg _ _ _ (by linarith [M.base.p_half]) M.base.p_lt_one.le\n M.base.c_nonneg M.base.c_lt_one.le M.c2_nonneg M.c2_lt_one.le e\n have ht : 0 \u2264 \u2211 e : Fin 4, if branchBit (A (M.parent i)) (B i) e = true\n then branchMass M.base.p M.base.c M.c2 e else 0 := by\n apply Finset.sum_nonneg\n intro e _\n split_ifs\n \u00b7 exact hn e\n \u00b7 exact le_rfl\n have hf : 0 \u2264 \u2211 e : Fin 4, if branchBit (A (M.parent i)) (B i) e = false\n then branchMass M.base.p M.base.c M.c2 e else 0 := by\n apply Finset.sum_nonneg\n intro e _\n split_ifs\n \u00b7 exact hn e\n \u00b7 exact le_rfl\n rw [branch_bit_fiber] at ht hf\n change 0 \u2264 q M A B i at ht\n change 0 \u2264 1-q M A B i at hf\n exact \u27e8ht, by linarith\u27e9\n\ntheorem mean_ratio_limit (M : Model) (A : Ancestors M) (B : Leaves M) :\n Tendsto (fun N : \u2115 => mean M A B N/(N:\u211d)) atTop (\ud835\udcdd (score M A B)) := by\n have h := tendsto_finset_sum Finset.univ (fun (i : Fin M.base.K) _ =>\n (Obligations045.M0.allocation_ratio M.base i).mul_const (q M A B i))\n convert h using 1\n funext N\n simp only [mean, score, Finset.sum_div, div_mul_eq_mul_div]\n\ntheorem variance_le (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n variance M A B N \u2264 (N:\u211d)/4 := by\n have hs : \u2211 i : Fin M.base.K, (sizes M N i : \u211d) = (N:\u211d) := by\n exact_mod_cast (by simpa only [Fin.sum_univ_eq_sum_range] using\n Obligations045.M0.allocation_sum M.base N)\n calc\n _ \u2264 \u2211 i : Fin M.base.K, (sizes M N i : \u211d)*(1/4) := by\n apply Finset.sum_le_sum\n intro i _\n have h : q M A B i*(1-q M A B i) \u2264 1/4 := by\n nlinarith [sq_nonneg (q M A B i-1/2)]\n simpa only [mul_assoc] using mul_le_mul_of_nonneg_left h (Nat.cast_nonneg (sizes M N i))\n _ = _ := by rw [\u2190 Finset.sum_mul, hs]; ring\n\n/-- Off-diagonal loss is locally constant; only a squared deviation can change it. -/\ntheorem loss_left_bound (x m eps : \u211d) (he : 0 < eps) (hm : m+eps \u2264 1/2) :\n |Obligations045.M0.limitingLoss x-1| \u2264 (x-m)^2/eps^2 := by\n by_cases hx : x < (1:\u211d)/2\n \u00b7 simp only [Obligations045.M0.limitingLoss, if_pos hx, sub_self, abs_zero]\n positivity\n \u00b7 have hx' : (1:\u211d)/2 \u2264 x := le_of_not_gt hx\n have hd : eps^2 \u2264 (x-m)^2 := by\n nlinarith [sq_nonneg (x-m-eps)]\n have hu : (1:\u211d) \u2264 (x-m)^2/eps^2 := by\n exact (le_div_iff\u2080 (sq_pos_of_pos he)).mpr (by simpa using hd)\n have hb : |Obligations045.M0.limitingLoss x-1| \u2264 1 := by\n unfold Obligations045.M0.limitingLoss\n split_ifs <;> norm_num [abs_div]\n exact hb.trans hu\n\ntheorem loss_right_bound (x m eps : \u211d) (he : 0 < eps) (hm : 1/2 \u2264 m-eps) :\n |Obligations045.M0.limitingLoss x| \u2264 (x-m)^2/eps^2 := by\n by_cases hx : (1:\u211d)/2 < x\n \u00b7 have hn : \u00ac x < (1:\u211d)/2 := not_lt.mpr hx.le\n simp only [Obligations045.M0.limitingLoss, if_neg hn, if_neg (Ne.symm hx.ne), abs_zero]\n positivity\n \u00b7 have hx' : x \u2264 (1:\u211d)/2 := le_of_not_gt hx\n have hd : eps^2 \u2264 (x-m)^2 := by\n nlinarith [sq_nonneg (m-x-eps)]\n have hu : (1:\u211d) \u2264 (x-m)^2/eps^2 := by\n exact (le_div_iff\u2080 (sq_pos_of_pos he)).mpr (by simpa using hd)\n have hb : |Obligations045.M0.limitingLoss x| \u2264 1 := by\n unfold Obligations045.M0.limitingLoss\n split_ifs <;> norm_num [abs_div]\n exact hb.trans hu\n\nabbrev members (M : Model) (N : \u2115) := World (sizes M N)\ndef weights (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115)\n (x : members M N) := jointMass (sizes M N) (q M A B) x\n\ntheorem weights_nonneg (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115)\n (x : members M N) : 0 \u2264 weights M A B N x := by\n unfold weights jointMass\n exact Finset.prod_nonneg (fun i _ => mass_nonneg _ (q_bounds M A B i).1\n (q_bounds M A B i).2 (x i))\n\ntheorem weights_sum (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n \u2211 x : members M N, weights M A B N x = 1 := jointMass_sum _ _\n\ntheorem conditional_member_error (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n binomialError M N A B = \u2211 x : members M N, weights M A B N x*\n Obligations045.M0.fairLoss (correctCount x) N := by\n symm\n simpa only [weights, binomialError, correctCount, count] using\n joint_count_pushforward (sizes M N) (q M A B)\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\ntheorem centered_second (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115) :\n (\u2211 x : members M N, weights M A B N x*((correctCount x:\u211d)-mean M A B N)^2) =\n variance M A B N := by\n have h := Obligations046.Moments.member_total_centered_second (sizes M N) (q M A B)\n (fun i => (q_bounds M A B i).1) (fun i => (q_bounds M A B i).2)\n rw [memberLaw_expectation] at h\n exact h\n\n/-- A direct finite Chebyshev bound. The test function is bounded POINTWISE; no\nindependence between pair scores, ambient process, CLT or limit is assumed. -/\ntheorem conditional_gap_bound (M : Model) (A : Ancestors M) (B : Leaves M) (N : \u2115)\n (hN : 0 < N) (eps target : \u211d) (he : 0 < eps)\n (hpoint : \u2200 x : \u211d, |Obligations045.M0.limitingLoss x-target| \u2264\n (x-mean M A B N/(N:\u211d))^2/eps^2) :\n |binomialError M N A B-target| \u2264 1/(4*(N:\u211d)*eps^2) := by\n have hn : (0:\u211d) < N := by exact_mod_cast hN\n have hd : 0 < (N:\u211d)^2*eps^2 := by positivity\n have hnorm := weights_sum M A B N\n have hrew : binomialError M N A B-target =\n \u2211 x : members M N, weights M A B N x*(Obligations045.M0.fairLoss (correctCount x) N-target) := by\n rw [conditional_member_error]\n simp only [mul_sub, Finset.sum_sub_distrib, \u2190 Finset.sum_mul, hnorm, one_mul]\n rw [hrew]\n calc\n _ \u2264 \u2211 x : members M N, |weights M A B N x*\n (Obligations045.M0.fairLoss (correctCount x) N-target)| := Finset.abs_sum_le_sum_abs _ _\n _ = \u2211 x : members M N, weights M A B N x*\n |Obligations045.M0.fairLoss (correctCount x) N-target| := by\n apply Finset.sum_congr rfl\n intro x _\n rw [abs_mul, abs_of_nonneg (weights_nonneg M A B N x)]\n _ \u2264 \u2211 x : members M N, weights M A B N x*\n (((correctCount x:\u211d)-mean M A B N)^2/((N:\u211d)^2*eps^2)) := by\n apply Finset.sum_le_sum\n intro x _\n apply mul_le_mul_of_nonneg_left _ (weights_nonneg M A B N x)\n rw [fair_loss_average_bridge _ _ hN]\n have h := hpoint ((correctCount x:\u211d)/(N:\u211d))\n convert h using 1\n field_simp\n _ = variance M A B N/((N:\u211d)^2*eps^2) := by\n simp_rw [\u2190 mul_div_assoc]\n rw [\u2190 Finset.sum_div, centered_second]\n _ \u2264 ((N:\u211d)/4)/((N:\u211d)^2*eps^2) :=\n div_le_div_of_nonneg_right (variance_le M A B N) hd.le\n _ = _ := by field_simp; ring\n\n/-- This positive O(1/N) bound tends to zero with epsilon FIXED. -/\ntheorem tail_bound_limit (eps : \u211d) :\n Tendsto (fun N : \u2115 => 1/(4*(N:\u211d)*eps^2)) atTop (\ud835\udcdd 0) := by\n have h : Tendsto (fun N : \u2115 => (1:\u211d)/(N:\u211d)) atTop (\ud835\udcdd 0) :=\n tendsto_const_nhds.div_atTop tendsto_natCast_atTop_atTop\n have heq : (fun N : \u2115 => 1/(4*(N:\u211d)*eps^2)) =\n (fun N : \u2115 => ((1:\u211d)/(N:\u211d))/(4*eps^2)) := by funext N; ring\n rw [heq]\n simpa using h.div_const (4*eps^2)\n\n/-- New finite M1 conditional probability limit, derived from quota convergence\nand the finite generator/binomial law; no convergence premise or ambient iid oracle. -/\ntheorem conditional_offdiag_limit (M : Model) (A : Ancestors M) (B : Leaves M)\n (hoff : score M A B \u2260 (1:\u211d)/2) :\n Tendsto (fun N : \u2115 => binomialError M N A B) atTop\n (\ud835\udcdd (Obligations045.M0.limitingLoss (score M A B))) := by\n by_cases hs : score M A B < (1:\u211d)/2\n \u00b7 let eps : \u211d := (1/2-score M A B)/2\n have he : 0 < eps := by dsimp [eps]; linarith\n have hm : \u2200\u1da0 N in atTop, mean M A B N/(N:\u211d)+eps \u2264 (1:\u211d)/2 := by\n have h := (mean_ratio_limit M A B).eventually\n (Iio_mem_nhds (show score M A B < (1:\u211d)/2-eps by dsimp [eps]; linarith))\n filter_upwards [h] with N hN\n linarith\n have hb : \u2200\u1da0 N in atTop, |binomialError M N A B-1| \u2264 1/(4*(N:\u211d)*eps^2) := by\n filter_upwards [hm, eventually_ge_atTop 1] with N hm hN\n exact conditional_gap_bound M A B N (by omega) eps 1 he\n (fun x => loss_left_bound x _ eps he hm)\n have h := squeeze_zero' (Eventually.of_forall (fun N => abs_nonneg (binomialError M N A B-1))) hb\n (tail_bound_limit eps)\n rw [Obligations045.M0.limitingLoss, if_pos hs]\n exact (tendsto_iff_norm_sub_tendsto_zero).mpr (by simpa only [Real.norm_eq_abs] using h)\n \u00b7 have hs' : (1:\u211d)/2 < score M A B := lt_of_le_of_ne (le_of_not_gt hs) (Ne.symm hoff)\n let eps : \u211d := (score M A B-1/2)/2\n have he : 0 < eps := by dsimp [eps]; linarith\n have hm : \u2200\u1da0 N in atTop, (1:\u211d)/2 \u2264 mean M A B N/(N:\u211d)-eps := by\n have h := (mean_ratio_limit M A B).eventually\n (Ioi_mem_nhds (show (1:\u211d)/2+eps < score M A B by dsimp [eps]; linarith))\n filter_upwards [h] with N hN\n linarith\n have hb : \u2200\u1da0 N in atTop, |binomialError M N A B| \u2264 1/(4*(N:\u211d)*eps^2) := by\n filter_upwards [hm, eventually_ge_atTop 1] with N hm hN\n simpa only [sub_zero] using conditional_gap_bound M A B N (by omega) eps 0 he\n (fun x => by simpa only [sub_zero] using loss_right_bound x _ eps he hm)\n have h := squeeze_zero' (Eventually.of_forall (fun N => abs_nonneg (binomialError M N A B))) hb\n (tail_bound_limit eps)\n rw [Obligations045.M0.limitingLoss, if_neg hs, if_neg hoff]\n exact (tendsto_iff_norm_sub_tendsto_zero).mpr (by simpa only [Real.norm_eq_abs, sub_zero] using h)\n\ndef thresholdFunctional (M : Model) : \u211d :=\n \u2211 A : Ancestors M, \u2211 B : Leaves M,\n latentMass M A B * Obligations045.M0.limitingLoss (score M A B)\n\n/-- All latent configurations are positive mass forp in(1/2,1). No diagonal\nconfiguration is silently discarded or called a fork. -/\ntheorem implementation_offdiag_limit (M : Model)\n (hoff : \u2200 (A : Ancestors M) (B : Leaves M), score M A B \u2260 (1:\u211d)/2) :\n Tendsto (implementationError M) atTop (\ud835\udcdd (thresholdFunctional M)) := by\n unfold implementationError thresholdFunctional\n apply tendsto_finset_sum\n intro A _\n apply tendsto_finset_sum\n intro B _\n exact tendsto_const_nhds.mul (conditional_offdiag_limit M A B (hoff A B))\n\n/-- Limit of the ACTUAL full generator probabilities via the admitted exact bridge. -/\ntheorem generator_offdiag_limit (M : Model)\n (hoff : \u2200 (A : Ancestors M) (B : Leaves M), score M A B \u2260 (1:\u211d)/2) :\n Tendsto (fun N : \u2115 => \u222b x, Obligations045.M0.fairLoss\n (\u2211 i, (primitiveCounts M N x.1.1 x.1.2 x.2 i : \u2115)) N \u2202(fullLaw M N).toMeasure)\n atTop (\ud835\udcdd (thresholdFunctional M)) := by\n simpa only [full_generator_error_bridge] using implementation_offdiag_limit M hoff\n\n/-- The existing exact shared-parent example: genuinely nonzero rates on both levels. -/\ndef exampleModel : Model where\n base := {\n K := 2\n K_pos := by norm_num\n p := 2/3\n c := 1/2\n p_half := by norm_num\n p_lt_one := by norm_num\n c_nonneg := by norm_num\n c_lt_one := by norm_num\n w := fun _ => 1/2\n w_nonneg := fun _ => by norm_num\n weights_sum := by norm_num [Finset.sum_range_succ] }\n ancestors := 1\n parent := fun _ => 0\n c2 := 1/2\n c2_nonneg := by norm_num\n c2_lt_one := by norm_num\n\ntheorem example_offdiag (A : Ancestors exampleModel) (B : Leaves exampleModel) :\n score exampleModel A B \u2260 (1:\u211d)/2 := by\n change (\u2211 i : Fin 2, (1/2:\u211d)*success (2/3) (1/2) (1/2) (A (0:Fin 1)) (B i)) \u2260 1/2\n cases ha : A (0:Fin 1) <;> cases hb : B (0:Fin 2) <;> cases hc : B (1:Fin 2) <;>\n norm_num [success, Fin.sum_univ_succ, ha, hb, hc]\n\ntheorem example_generator_limit :\n Tendsto (fun N : \u2115 => \u222b x, Obligations045.M0.fairLoss\n (\u2211 i, (primitiveCounts exampleModel N x.1.1 x.1.2 x.2 i : \u2115)) N\n \u2202(fullLaw exampleModel N).toMeasure)\n atTop (\ud835\udcdd (thresholdFunctional exampleModel)) :=\n generator_offdiag_limit exampleModel example_offdiag\n\nend Obligations046.M1Offdiag\n\nopen Obligations046.M1Offdiag\nexample : (\u2211 z : Bool, Obligations046.M1Bridge.bernMass (1/2) z*((if z then (2:\u211d) else 0)-1)^2) \u2264 (2:\u211d)/4 := by norm_num [Obligations045.M0.limitingLoss, abs_div, Fintype.sum_bool, Obligations046.M1Bridge.bernMass]\n",
159
+ "exitCode": 1,
160
+ "cause": [
161
+ "unsolved goals"
162
+ ]
163
+ }
164
+ ]
165
+ }
166
+ }
@@ -0,0 +1,260 @@
1
+ {
2
+ "archiveApproval": false,
3
+ "candidatePublicationCorrectionCovered": false,
4
+ "captures": [
5
+ {
6
+ "elapsedMs": 312.200917,
7
+ "expected": "fact",
8
+ "name": "orchard-projection",
9
+ "passed": true,
10
+ "requestSHA256": "sha256:ac3baa4cd5cd1f8b3f1ff55e492c9c661bd2f042ec3d9a4355f312854b04eea0",
11
+ "result": {
12
+ "kind": "fact",
13
+ "lines": [
14
+ "bound-lock/1 at=receipt:1 form=alphabet measure=reads role=reads scope=publication/evidence/m1-offdiag-limit value=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-subcauses.json|contracts/m1-offdiag-limit.json|samples/laws/m1-offdiag-limit/yes/sample.json|samples/laws/m1-offdiag-limit/no/sample.json|vectors/laws/policy.json"
15
+ ],
16
+ "protocol": "bound-lock/1"
17
+ }
18
+ },
19
+ {
20
+ "elapsedMs": 24620.799792,
21
+ "expected": "fact",
22
+ "name": "orchard-read",
23
+ "passed": true,
24
+ "requestSHA256": "sha256:420b0daf0fd44ea7c44dbc6fb07b275863c7b85af9d7ca0c7b41d64feddd25c5",
25
+ "result": {
26
+ "claims": [
27
+ {
28
+ "bound": {
29
+ "hi": 0,
30
+ "kind": "interval",
31
+ "lo": 0
32
+ },
33
+ "measure": "count",
34
+ "role": "writes",
35
+ "scope": "publication/evidence/m1-offdiag-limit"
36
+ },
37
+ {
38
+ "bound": {
39
+ "kind": "enumerated",
40
+ "values": [
41
+ "sha256:ea7a981fdd9f33b976ac6371549c7a5172e15e0c14394a08b2f542c2c0be3e2e"
42
+ ]
43
+ },
44
+ "measure": "digest",
45
+ "role": "writes",
46
+ "scope": "publication/evidence/m1-offdiag-limit/verification"
47
+ }
48
+ ],
49
+ "kind": "fact",
50
+ "protocol": "bound-lock/1"
51
+ }
52
+ },
53
+ {
54
+ "elapsedMs": 175.32708300000013,
55
+ "expected": "refuse",
56
+ "name": "orchard-missing-input",
57
+ "passed": true,
58
+ "requestSHA256": "sha256:84afff1031e64474744fa43abcdbcd39469038dfcb09e4ad553c5f066c386cdb",
59
+ "result": {
60
+ "kind": "refuse",
61
+ "protocol": "bound-lock/1",
62
+ "why": "Error: REFUSE\u00b7semilattice missing-input proofs/m1-046-offdiag/M1Offdiag046.lean"
63
+ }
64
+ },
65
+ {
66
+ "elapsedMs": 159.21141599999828,
67
+ "expected": "refuse",
68
+ "name": "orchard-handed-source-differs",
69
+ "passed": true,
70
+ "requestSHA256": "sha256:3745a48af677fe0a9b288ee42b6c0944cb6bc487f4889dafda3e2f95d17b63c9",
71
+ "result": {
72
+ "kind": "refuse",
73
+ "protocol": "bound-lock/1",
74
+ "why": "Error: REFUSE\u00b7semilattice fixture-source-differs proofs/m1-046-offdiag/M1Offdiag046.lean"
75
+ }
76
+ },
77
+ {
78
+ "elapsedMs": 158.54312500000015,
79
+ "expected": "refuse",
80
+ "name": "orchard-overstated-M1-offdiag",
81
+ "passed": true,
82
+ "requestSHA256": "sha256:b521ae35f6ed58911fbab0386c37b525e6422e7223e575eab4f5ec37da14a2f6",
83
+ "result": {
84
+ "kind": "refuse",
85
+ "protocol": "bound-lock/1",
86
+ "why": "Error: REFUSE\u00b7semilattice overstated-M1-offdiag"
87
+ }
88
+ },
89
+ {
90
+ "elapsedMs": 182.27337500000067,
91
+ "expected": "fact",
92
+ "name": "catalog-projection",
93
+ "passed": true,
94
+ "requestSHA256": "sha256:ac3baa4cd5cd1f8b3f1ff55e492c9c661bd2f042ec3d9a4355f312854b04eea0",
95
+ "result": {
96
+ "kind": "fact",
97
+ "lines": [
98
+ "bound-lock/1 at=receipt:1 form=alphabet measure=reads role=reads scope=publication/evidence/m1-offdiag-limit value=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-subcauses.json|contracts/m1-offdiag-limit.json|samples/laws/m1-offdiag-limit/yes/sample.json|samples/laws/m1-offdiag-limit/no/sample.json|vectors/laws/policy.json"
99
+ ],
100
+ "protocol": "bound-lock/1"
101
+ }
102
+ },
103
+ {
104
+ "elapsedMs": 15418.176583999997,
105
+ "expected": "fact",
106
+ "name": "catalog-read",
107
+ "passed": true,
108
+ "requestSHA256": "sha256:420b0daf0fd44ea7c44dbc6fb07b275863c7b85af9d7ca0c7b41d64feddd25c5",
109
+ "result": {
110
+ "claims": [
111
+ {
112
+ "bound": {
113
+ "hi": 0,
114
+ "kind": "interval",
115
+ "lo": 0
116
+ },
117
+ "measure": "count",
118
+ "role": "writes",
119
+ "scope": "publication/evidence/m1-offdiag-limit"
120
+ },
121
+ {
122
+ "bound": {
123
+ "kind": "enumerated",
124
+ "values": [
125
+ "sha256:ea7a981fdd9f33b976ac6371549c7a5172e15e0c14394a08b2f542c2c0be3e2e"
126
+ ]
127
+ },
128
+ "measure": "digest",
129
+ "role": "writes",
130
+ "scope": "publication/evidence/m1-offdiag-limit/verification"
131
+ }
132
+ ],
133
+ "kind": "fact",
134
+ "protocol": "bound-lock/1"
135
+ }
136
+ },
137
+ {
138
+ "elapsedMs": 222.87250000000495,
139
+ "expected": "refuse",
140
+ "name": "catalog-missing-input",
141
+ "passed": true,
142
+ "requestSHA256": "sha256:84afff1031e64474744fa43abcdbcd39469038dfcb09e4ad553c5f066c386cdb",
143
+ "result": {
144
+ "kind": "refuse",
145
+ "protocol": "bound-lock/1",
146
+ "why": "Error: REFUSE\u00b7semilattice missing-input proofs/m1-046-offdiag/M1Offdiag046.lean"
147
+ }
148
+ },
149
+ {
150
+ "elapsedMs": 181.9406250000029,
151
+ "expected": "refuse",
152
+ "name": "catalog-handed-source-differs",
153
+ "passed": true,
154
+ "requestSHA256": "sha256:3745a48af677fe0a9b288ee42b6c0944cb6bc487f4889dafda3e2f95d17b63c9",
155
+ "result": {
156
+ "kind": "refuse",
157
+ "protocol": "bound-lock/1",
158
+ "why": "Error: REFUSE\u00b7semilattice fixture-source-differs proofs/m1-046-offdiag/M1Offdiag046.lean"
159
+ }
160
+ },
161
+ {
162
+ "elapsedMs": 191.3113749999975,
163
+ "expected": "refuse",
164
+ "name": "catalog-overstated-M1-offdiag",
165
+ "passed": true,
166
+ "requestSHA256": "sha256:b521ae35f6ed58911fbab0386c37b525e6422e7223e575eab4f5ec37da14a2f6",
167
+ "result": {
168
+ "kind": "refuse",
169
+ "protocol": "bound-lock/1",
170
+ "why": "Error: REFUSE\u00b7semilattice overstated-M1-offdiag"
171
+ }
172
+ }
173
+ ],
174
+ "classification": "retained actual host responses; exact historical input identities only",
175
+ "format": "native-reading-capture@1",
176
+ "ownerAdmitted": true,
177
+ "sameOrigin": true,
178
+ "sourceInputDigests": [
179
+ {
180
+ "bytes": 14408,
181
+ "path": "proofs/m1-046-offdiag/M0Bridge.lean",
182
+ "sha256": "sha256:b438b2961b93c62787275e158a90b534a400de8646a0552b099863fa5227c21e"
183
+ },
184
+ {
185
+ "bytes": 10587,
186
+ "path": "proofs/m1-046-offdiag/M0Diagonal046.lean",
187
+ "sha256": "sha256:c0403d40e1c6849045bf70eab2854eeac28a2464783e06ce03f2f36e33c2146c"
188
+ },
189
+ {
190
+ "bytes": 12023,
191
+ "path": "proofs/m1-046-offdiag/M0Moments046.lean",
192
+ "sha256": "sha256:06780115a2b44a77a9be72673350332b77045489dba7ff081beecd48b8d51a73"
193
+ },
194
+ {
195
+ "bytes": 17502,
196
+ "path": "proofs/m1-046-offdiag/M1Bridge046.lean",
197
+ "sha256": "sha256:a21ac1dedb07af4f28752238edd564293967d8177b75979feead44f01f347b9c"
198
+ },
199
+ {
200
+ "bytes": 12823,
201
+ "path": "proofs/m1-046-offdiag/M1Offdiag046.lean",
202
+ "sha256": "sha256:faf6ef0b27049ff4cb89db0e216102239b8bb3f29a76e2a66442fb7c9b6ccd2b"
203
+ },
204
+ {
205
+ "bytes": 5762,
206
+ "path": "proofs/m1-046-offdiag/Obligations045/M0Limit.lean",
207
+ "sha256": "sha256:aedc88b8ba4edf884cacec78da82eef29187ded0199d44674466425af1585b8c"
208
+ },
209
+ {
210
+ "bytes": 8801,
211
+ "path": "proofs/m1-046-offdiag/Obligations045/M0Offdiag.lean",
212
+ "sha256": "sha256:af8a95d00cd0956acaec06deeebe7156dccf156b698408275c3e710f58c1c1e8"
213
+ },
214
+ {
215
+ "bytes": 3526,
216
+ "path": "proofs/m1-046-offdiag/lake-manifest.json",
217
+ "sha256": "sha256:fc8b4ba4b08bbcadf736bc8bcf803b5fdedfebafb57dec61ce0106e99964285d"
218
+ },
219
+ {
220
+ "bytes": 549,
221
+ "path": "proofs/m1-046-offdiag/lakefile.toml",
222
+ "sha256": "sha256:1853d377780647756b113f9b077ea95cde54c98fb5e570902c736ab5799f5af9"
223
+ },
224
+ {
225
+ "bytes": 25,
226
+ "path": "proofs/m1-046-offdiag/lean-toolchain",
227
+ "sha256": "sha256:55e97be96000b5e9e290c9e74482e5e317861499a5540353ce845471bded8cea"
228
+ },
229
+ {
230
+ "bytes": 47656,
231
+ "path": "vectors/laws/m1-offdiag-limit.lean.json",
232
+ "sha256": "sha256:8074c90962613d8dccdde37f1657377191cd12df1da4e2c297936f897ea8dde3"
233
+ },
234
+ {
235
+ "bytes": 6036,
236
+ "path": "contracts/m1-subcauses.json",
237
+ "sha256": "sha256:8213a6cc3a5ca80a6adb594b9d8f28504c9566200a6d585f675585db2c8d45cc"
238
+ },
239
+ {
240
+ "bytes": 3480,
241
+ "path": "contracts/m1-offdiag-limit.json",
242
+ "sha256": "sha256:80ccec0916db5da35fbff2284aa739cb64bd22f8d7eaa308a43e5d44c4e68177"
243
+ },
244
+ {
245
+ "bytes": 1662,
246
+ "path": "samples/laws/m1-offdiag-limit/yes/sample.json",
247
+ "sha256": "sha256:235ff6999c346055c4e22207e5a2dfdc4633ba016e6d29fe264f2758664b3864"
248
+ },
249
+ {
250
+ "bytes": 653,
251
+ "path": "samples/laws/m1-offdiag-limit/no/sample.json",
252
+ "sha256": "sha256:813962d712a8cda54caa9fec008abf826730e1eb9ac628a4a56d6ab2619d52dc"
253
+ },
254
+ {
255
+ "bytes": 2761,
256
+ "path": "vectors/laws/policy.json",
257
+ "sha256": "sha256:e941ce8cd86f0ec31621fa6b4deef9685dc1fead283f4b2fe22a8a58e3d5d939"
258
+ }
259
+ ]
260
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "classification": "protocol-status fixture only, not experimental result",
3
+ "id": "experiment1a-protocol-boundaries@1",
4
+ "nativeReceipt": false,
5
+ "negative": "No empirical/causal result can be inferred from metadata or finite falling curve",
6
+ "policy": "policy.json",
7
+ "positive": "No licensed dataset or execution -> unmeasured",
8
+ "protocol": {
9
+ "path": "protocols/model-collapse-1a.json",
10
+ "sha256": "sha256:7b8e16cbc8dff5d1654b8bb3710dd619810dde74ad8bb3a70b92dec377af736f"
11
+ }
12
+ }
@@ -0,0 +1,61 @@
1
+ {
2
+ "atoms": [
3
+ "a",
4
+ "b",
5
+ "c",
6
+ "d"
7
+ ],
8
+ "chainEnumeration": "g is every partition of the image blocks of f",
9
+ "id": "projection-chain-bounded@1",
10
+ "negative": {
11
+ "Y": [
12
+ 0,
13
+ 0,
14
+ 1,
15
+ 1
16
+ ],
17
+ "Z": [
18
+ 0,
19
+ 1,
20
+ 0,
21
+ 1
22
+ ],
23
+ "conditionalBits": [
24
+ 1,
25
+ 1,
26
+ 1
27
+ ],
28
+ "prior": [
29
+ 1,
30
+ 1,
31
+ 1,
32
+ 1
33
+ ]
34
+ },
35
+ "partitionEnumeration": "restricted growth strings length4, starting0",
36
+ "policy": "policy.json",
37
+ "positive": {
38
+ "f": [
39
+ 0,
40
+ 0,
41
+ 1,
42
+ 1
43
+ ],
44
+ "g": [
45
+ 0,
46
+ 0
47
+ ],
48
+ "lossBits": [
49
+ 1,
50
+ 1,
51
+ 2
52
+ ],
53
+ "prior": [
54
+ 1,
55
+ 1,
56
+ 1,
57
+ 1
58
+ ]
59
+ },
60
+ "priorNumeratorTotal": 4
61
+ }