@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.
- package/README.md +42 -3
- package/TARGET.bound +147 -4
- package/contracts/extension-lineage-participation.json +30 -0
- package/contracts/m0-allocation.json +6 -0
- package/contracts/m0-binomial-bridge.json +6 -0
- package/contracts/m0-diagonal-conditional.json +15 -0
- package/contracts/m0-finite-grid.json +6 -0
- package/contracts/m0-keff-interval.json +27 -0
- package/contracts/m0-limit-diag.json +6 -0
- package/contracts/m0-limit-offdiag.json +6 -0
- package/contracts/m0-moment-identification.json +42 -0
- package/contracts/m0-pair-coincidence.json +6 -0
- package/contracts/m1-diagonal-regions.json +45 -0
- package/contracts/m1-generator-binomial.json +26 -0
- package/contracts/m1-offdiag-limit.json +42 -0
- package/contracts/m1-subcauses.json +66 -0
- package/contracts/model-collapse-1a.json +16 -0
- package/contracts/projection-chain.json +20 -0
- package/docs/contracts/experiment1a-public-attribution.md +1 -0
- package/docs/contracts/extension-lineage-participation.md +13 -0
- package/docs/contracts/installation-046-inputs.md +1 -0
- package/docs/contracts/m0-allocation.md +1 -0
- package/docs/contracts/m0-binomial-bridge.md +1 -0
- package/docs/contracts/m0-diagonal-lindeberg.md +1 -0
- package/docs/contracts/m0-diagonal-moments.md +1 -0
- package/docs/contracts/m0-diagonal-symmetric.md +1 -0
- package/docs/contracts/m0-diagonal-threshold.md +1 -0
- package/docs/contracts/m0-finite-grid.md +1 -0
- package/docs/contracts/m0-keff-floor-refutation.md +1 -0
- package/docs/contracts/m0-keff-interval.md +1 -0
- package/docs/contracts/m0-limit-diag.md +1 -0
- package/docs/contracts/m0-limit-offdiag.md +1 -0
- package/docs/contracts/m0-moment-identification.md +1 -0
- package/docs/contracts/m0-pair-coincidence.md +1 -0
- package/docs/contracts/m0-refuted-inverses.md +1 -0
- package/docs/contracts/m0-wf-floor-refutation.md +1 -0
- package/docs/contracts/m1-diagonal-regions.md +1 -0
- package/docs/contracts/m1-generator-binomial.md +1 -0
- package/docs/contracts/m1-offdiag-limit.md +1 -0
- package/docs/contracts/model-collapse-1a.md +11 -0
- package/docs/contracts/projection-chain.md +1 -0
- package/docs/proofs/floor-limit-diag.proof.json +29 -0
- package/package.json +1 -1
- package/proofs/definitions-046/declaration.json +11 -0
- package/proofs/experiment1a-046/declaration.json +11 -0
- package/proofs/m0-045/Obligations045/ConsensusGrid.lean +72 -0
- package/proofs/m0-045/Obligations045/M0Coincidence.lean +39 -0
- package/proofs/m0-045/Obligations045/M0Diagonal.lean +18 -0
- package/proofs/m0-045/Obligations045/M0Limit.lean +134 -0
- package/proofs/m0-045/Obligations045/M0Offdiag.lean +171 -0
- package/proofs/m0-045/Obligations045.lean +5 -0
- package/proofs/m0-045/lake-manifest.json +116 -0
- package/proofs/m0-045/lakefile.toml +9 -0
- package/proofs/m0-045/lean-toolchain +1 -0
- package/proofs/m0-046/BridgeNegatives.lean +23 -0
- package/proofs/m0-046/M0Bridge.lean +300 -0
- package/proofs/m0-046/Obligations045/ConsensusGrid.lean +72 -0
- package/proofs/m0-046/Obligations045/M0Coincidence.lean +39 -0
- package/proofs/m0-046/Obligations045/M0Diagonal.lean +18 -0
- package/proofs/m0-046/Obligations045/M0Limit.lean +134 -0
- package/proofs/m0-046/Obligations045/M0Offdiag.lean +171 -0
- package/proofs/m0-046/Obligations045.lean +5 -0
- package/proofs/m0-046/lake-manifest.json +116 -0
- package/proofs/m0-046/lakefile.toml +14 -0
- package/proofs/m0-046/lean-toolchain +1 -0
- package/proofs/m0-046-diagonal/BridgeNegatives.lean +23 -0
- package/proofs/m0-046-diagonal/M0Bridge.lean +300 -0
- package/proofs/m0-046-diagonal/M0Diagonal046.lean +235 -0
- package/proofs/m0-046-diagonal/M0Lindeberg046.lean +92 -0
- package/proofs/m0-046-diagonal/M0Moments046.lean +295 -0
- package/proofs/m0-046-diagonal/M0Threshold046.lean +278 -0
- package/proofs/m0-046-diagonal/Obligations045/ConsensusGrid.lean +72 -0
- package/proofs/m0-046-diagonal/Obligations045/M0Coincidence.lean +39 -0
- package/proofs/m0-046-diagonal/Obligations045/M0Diagonal.lean +18 -0
- package/proofs/m0-046-diagonal/Obligations045/M0Limit.lean +134 -0
- package/proofs/m0-046-diagonal/Obligations045/M0Offdiag.lean +171 -0
- package/proofs/m0-046-diagonal/Obligations045.lean +5 -0
- package/proofs/m0-046-diagonal/lake-manifest.json +116 -0
- package/proofs/m0-046-diagonal/lakefile.toml +26 -0
- package/proofs/m0-046-diagonal/lean-toolchain +1 -0
- package/proofs/m0-046-identification/M0Identification046.lean +209 -0
- package/proofs/m0-046-identification/Obligations045/M0Coincidence.lean +39 -0
- package/proofs/m0-046-identification/lake-manifest.json +116 -0
- package/proofs/m0-046-identification/lakefile.toml +12 -0
- package/proofs/m0-046-identification/lean-toolchain +1 -0
- package/proofs/m0-046-uncertainty/BridgeNegatives.lean +23 -0
- package/proofs/m0-046-uncertainty/M0BlockCoverage046.lean +163 -0
- package/proofs/m0-046-uncertainty/M0Bridge.lean +300 -0
- package/proofs/m0-046-uncertainty/M0Diagonal046.lean +235 -0
- package/proofs/m0-046-uncertainty/M0FiniteDiscord046.lean +207 -0
- package/proofs/m0-046-uncertainty/M0Interval046.lean +82 -0
- package/proofs/m0-046-uncertainty/M0Lindeberg046.lean +92 -0
- package/proofs/m0-046-uncertainty/M0Moments046.lean +295 -0
- package/proofs/m0-046-uncertainty/M0Threshold046.lean +278 -0
- package/proofs/m0-046-uncertainty/Obligations045/ConsensusGrid.lean +72 -0
- package/proofs/m0-046-uncertainty/Obligations045/M0Coincidence.lean +39 -0
- package/proofs/m0-046-uncertainty/Obligations045/M0Diagonal.lean +18 -0
- package/proofs/m0-046-uncertainty/Obligations045/M0Limit.lean +134 -0
- package/proofs/m0-046-uncertainty/Obligations045/M0Offdiag.lean +171 -0
- package/proofs/m0-046-uncertainty/Obligations045.lean +5 -0
- package/proofs/m0-046-uncertainty/lake-manifest.json +116 -0
- package/proofs/m0-046-uncertainty/lakefile.toml +35 -0
- package/proofs/m0-046-uncertainty/lean-toolchain +1 -0
- package/proofs/m1-046-bridge/M0Bridge.lean +300 -0
- package/proofs/m1-046-bridge/M1Bridge046.lean +359 -0
- package/proofs/m1-046-bridge/Obligations045/M0Limit.lean +134 -0
- package/proofs/m1-046-bridge/Obligations045/M0Offdiag.lean +171 -0
- package/proofs/m1-046-bridge/lake-manifest.json +116 -0
- package/proofs/m1-046-bridge/lakefile.toml +29 -0
- package/proofs/m1-046-bridge/lean-toolchain +1 -0
- package/proofs/m1-046-diagonal/M0Bridge.lean +300 -0
- package/proofs/m1-046-diagonal/M0Diagonal046.lean +235 -0
- package/proofs/m1-046-diagonal/M0Lindeberg046.lean +92 -0
- package/proofs/m1-046-diagonal/M0Moments046.lean +295 -0
- package/proofs/m1-046-diagonal/M0Threshold046.lean +278 -0
- package/proofs/m1-046-diagonal/M1Bridge046.lean +359 -0
- package/proofs/m1-046-diagonal/M1Diagonal046.lean +334 -0
- package/proofs/m1-046-diagonal/M1Offdiag046.lean +270 -0
- package/proofs/m1-046-diagonal/Obligations045/M0Limit.lean +134 -0
- package/proofs/m1-046-diagonal/Obligations045/M0Offdiag.lean +171 -0
- package/proofs/m1-046-diagonal/lake-manifest.json +116 -0
- package/proofs/m1-046-diagonal/lakefile.toml +35 -0
- package/proofs/m1-046-diagonal/lean-toolchain +1 -0
- package/proofs/m1-046-offdiag/M0Bridge.lean +300 -0
- package/proofs/m1-046-offdiag/M0Diagonal046.lean +235 -0
- package/proofs/m1-046-offdiag/M0Moments046.lean +295 -0
- package/proofs/m1-046-offdiag/M1Bridge046.lean +359 -0
- package/proofs/m1-046-offdiag/M1Offdiag046.lean +270 -0
- package/proofs/m1-046-offdiag/Obligations045/M0Limit.lean +134 -0
- package/proofs/m1-046-offdiag/Obligations045/M0Offdiag.lean +171 -0
- package/proofs/m1-046-offdiag/lake-manifest.json +116 -0
- package/proofs/m1-046-offdiag/lakefile.toml +32 -0
- package/proofs/m1-046-offdiag/lean-toolchain +1 -0
- package/proofs/projection-chain.md +11 -0
- package/protocols/model-collapse-1a.json +108 -0
- package/receipts.bound +684 -208
- package/samples/laws/definitions/no/sample.json +26 -0
- package/samples/laws/definitions/yes/sample.json +12 -0
- package/samples/laws/experiment1a/no/sample.json +16 -0
- package/samples/laws/experiment1a/yes/sample.json +8 -0
- package/samples/laws/m0-allocation/no/sample.json +5 -0
- package/samples/laws/m0-allocation/yes/sample.json +7 -0
- package/samples/laws/m0-binomial-bridge/no/pairwise-is-not-joint.json +59 -0
- package/samples/laws/m0-binomial-bridge/no/sample.json +13 -0
- package/samples/laws/m0-binomial-bridge/yes/sample.json +16 -0
- package/samples/laws/m0-binomial-bridge/yes/small-binomial-table.json +100 -0
- package/samples/laws/m0-diagonal-conditional/no/sample.json +5 -0
- package/samples/laws/m0-diagonal-conditional/yes/sample.json +7 -0
- package/samples/laws/m0-finite-grid/no/sample.json +5 -0
- package/samples/laws/m0-finite-grid/yes/sample.json +7 -0
- package/samples/laws/m0-keff-interval/no/sample.json +215 -0
- package/samples/laws/m0-keff-interval/yes/api-rows.json +2002 -0
- package/samples/laws/m0-keff-interval/yes/sample.json +70 -0
- package/samples/laws/m0-limit-diag/no/sample.json +5 -0
- package/samples/laws/m0-limit-diag/yes/sample.json +7 -0
- package/samples/laws/m0-limit-offdiag/no/sample.json +5 -0
- package/samples/laws/m0-limit-offdiag/yes/sample.json +7 -0
- package/samples/laws/m0-moment-identification/no/sample.json +47 -0
- package/samples/laws/m0-moment-identification/yes/sample.json +97 -0
- package/samples/laws/m0-pair-coincidence/no/sample.json +5 -0
- package/samples/laws/m0-pair-coincidence/yes/sample.json +7 -0
- package/samples/laws/m1-diagonal-regions/no/sample.json +44 -0
- package/samples/laws/m1-diagonal-regions/yes/sample.json +45 -0
- package/samples/laws/m1-generator-binomial/no/sample.json +21 -0
- package/samples/laws/m1-generator-binomial/yes/sample.json +290 -0
- package/samples/laws/m1-offdiag-limit/no/sample.json +17 -0
- package/samples/laws/m1-offdiag-limit/yes/sample.json +87 -0
- package/samples/laws/projection-chain/no/sample.json +26 -0
- package/samples/laws/projection-chain/yes/sample.json +25 -0
- package/samples/no/installed-artifact.json +2 -2
- package/samples/yes/installed-artifact.json +2 -2
- package/src/laws/laws.bound +146 -0
- package/vectors/laws/a7-t90.json +72 -0
- package/vectors/laws/a9-t99.json +110 -0
- package/vectors/laws/definitions.native-capture.json +326 -0
- package/vectors/laws/definitions.native.json +82 -0
- package/vectors/laws/experiment1a-protocol.native-capture.json +391 -0
- package/vectors/laws/experiment1a-protocol.native.json +64 -0
- package/vectors/laws/experiment1a-public-input.native-capture.json +224 -0
- package/vectors/laws/m0-allocation.lean.json +150 -0
- package/vectors/laws/m0-allocation.native.json +104 -0
- package/vectors/laws/m0-binomial-bridge.lean.json +185 -0
- package/vectors/laws/m0-diagonal-lindeberg.lean.json +167 -0
- package/vectors/laws/m0-diagonal-moments.lean.json +185 -0
- package/vectors/laws/m0-diagonal-symmetric.lean.json +188 -0
- package/vectors/laws/m0-diagonal-threshold.lean.json +199 -0
- package/vectors/laws/m0-finite-grid.lean.json +144 -0
- package/vectors/laws/m0-finite-grid.native.json +104 -0
- package/vectors/laws/m0-identification.lean.json +136 -0
- package/vectors/laws/m0-identification.native-capture.json +230 -0
- package/vectors/laws/m0-keff-interval.json +569 -0
- package/vectors/laws/m0-limit-diag.lean.json +141 -0
- package/vectors/laws/m0-limit-diag.native.json +108 -0
- package/vectors/laws/m0-limit-offdiag.lean.json +143 -0
- package/vectors/laws/m0-limit-offdiag.native.json +104 -0
- package/vectors/laws/m0-pair-coincidence.lean.json +139 -0
- package/vectors/laws/m0-pair-coincidence.native.json +104 -0
- package/vectors/laws/m0-uncertainty-blocks.lean.json +201 -0
- package/vectors/laws/m0-uncertainty-finite-discord.lean.json +194 -0
- package/vectors/laws/m0-uncertainty-interval.lean.json +189 -0
- package/vectors/laws/m0-uncertainty.native-capture.json +651 -0
- package/vectors/laws/m1-diagonal-partial.lean.json +192 -0
- package/vectors/laws/m1-diagonal-partial.native-capture.json +275 -0
- package/vectors/laws/m1-generator-binomial.lean.json +162 -0
- package/vectors/laws/m1-generator-binomial.native-capture.json +245 -0
- package/vectors/laws/m1-offdiag-limit.lean.json +166 -0
- package/vectors/laws/m1-offdiag-limit.native-capture.json +260 -0
- package/vectors/laws/model-collapse-1a.json +12 -0
- package/vectors/laws/projection-chain.json +61 -0
- package/vectors/laws/projection-chain.native-capture.json +311 -0
- package/vectors/laws/projection-chain.native.json +56 -0
- package/vectors/measures/installed-artifact.cli.json +6 -6
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "m1-generator-binomial",
|
|
3
|
+
"block": "m1-bridge",
|
|
4
|
+
"claim": "finite-M1-primitive-generator-binomial-identity",
|
|
5
|
+
"generalDiagonal": {
|
|
6
|
+
"status": "open",
|
|
7
|
+
"actualCLTProved": false
|
|
8
|
+
},
|
|
9
|
+
"m1Boundary": {
|
|
10
|
+
"model": "binary-M1-ancestor-first-fixed-quota@1",
|
|
11
|
+
"finiteIdentityOnly": true,
|
|
12
|
+
"offdiagLimitProved": false,
|
|
13
|
+
"diagonalLimitProved": false,
|
|
14
|
+
"actualCalibrationCertified": false,
|
|
15
|
+
"publicM1APIImplemented": false,
|
|
16
|
+
"originalThreeCards": "open"
|
|
17
|
+
},
|
|
18
|
+
"proof": {
|
|
19
|
+
"files": [
|
|
20
|
+
{
|
|
21
|
+
"path": "proofs/m1-046-bridge/M0Bridge.lean",
|
|
22
|
+
"sha256": "sha256:b438b2961b93c62787275e158a90b534a400de8646a0552b099863fa5227c21e"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"path": "proofs/m1-046-bridge/M1Bridge046.lean",
|
|
26
|
+
"sha256": "sha256:a21ac1dedb07af4f28752238edd564293967d8177b75979feead44f01f347b9c"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"path": "proofs/m1-046-bridge/Obligations045/M0Limit.lean",
|
|
30
|
+
"sha256": "sha256:aedc88b8ba4edf884cacec78da82eef29187ded0199d44674466425af1585b8c"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"path": "proofs/m1-046-bridge/Obligations045/M0Offdiag.lean",
|
|
34
|
+
"sha256": "sha256:af8a95d00cd0956acaec06deeebe7156dccf156b698408275c3e710f58c1c1e8"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"path": "proofs/m1-046-bridge/lake-manifest.json",
|
|
38
|
+
"sha256": "sha256:fc8b4ba4b08bbcadf736bc8bcf803b5fdedfebafb57dec61ce0106e99964285d"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"path": "proofs/m1-046-bridge/lakefile.toml",
|
|
42
|
+
"sha256": "sha256:8a10d2a45af4798c40a903cedc12a03634851fc683c4557fe6711de297b3dc42"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"path": "proofs/m1-046-bridge/lean-toolchain",
|
|
46
|
+
"sha256": "sha256:55e97be96000b5e9e290c9e74482e5e317861499a5540353ce845471bded8cea"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"mathlib": "c44e0c8ee63ca166450922a373c7409c5d26b00b",
|
|
50
|
+
"auditedTheorems": [
|
|
51
|
+
"Obligations046.M1Bridge.branch_normalized",
|
|
52
|
+
"Obligations046.M1Bridge.branch_nonneg",
|
|
53
|
+
"Obligations046.M1Bridge.branch_bit_fiber",
|
|
54
|
+
"Obligations046.M1Bridge.selector_to_member",
|
|
55
|
+
"Obligations046.M1Bridge.selector_count_fiber",
|
|
56
|
+
"Obligations046.M1Bridge.rawMass_normalized",
|
|
57
|
+
"Obligations046.M1Bridge.rawMass_nonneg",
|
|
58
|
+
"Obligations046.M1Bridge.generator_to_binomial",
|
|
59
|
+
"Obligations046.M1Bridge.conditional_error_bridge",
|
|
60
|
+
"Obligations046.M1Bridge.primitive_branch_fiber",
|
|
61
|
+
"Obligations046.M1Bridge.primitive_normalized",
|
|
62
|
+
"Obligations046.M1Bridge.primitive_output_is_sequential",
|
|
63
|
+
"Obligations046.M1Bridge.primitive_member_pushforward",
|
|
64
|
+
"Obligations046.M1Bridge.primitive_count_fiber",
|
|
65
|
+
"Obligations046.M1Bridge.primitive_generator_to_binomial",
|
|
66
|
+
"Obligations046.M1Bridge.bern_nonneg",
|
|
67
|
+
"Obligations046.M1Bridge.primitive_joint_nonneg",
|
|
68
|
+
"Obligations046.M1Bridge.primitive_joint_normalized",
|
|
69
|
+
"Obligations046.M1Bridge.primitive_law_count_expectation",
|
|
70
|
+
"Obligations046.M1Bridge.primitive_law_count_probability",
|
|
71
|
+
"Obligations046.M1Bridge.primitive_law_error_bridge",
|
|
72
|
+
"Obligations046.M1Bridge.latent_normalized",
|
|
73
|
+
"Obligations046.M1Bridge.mixture_error_bridge",
|
|
74
|
+
"Obligations046.M1Bridge.zero_ancestor_reduction",
|
|
75
|
+
"Obligations046.M1Bridge.latent_nonneg",
|
|
76
|
+
"Obligations046.M1Bridge.fullMass_nonneg",
|
|
77
|
+
"Obligations046.M1Bridge.fullMass_normalized",
|
|
78
|
+
"Obligations046.M1Bridge.full_generator_error_bridge"
|
|
79
|
+
],
|
|
80
|
+
"allowedAxioms": [
|
|
81
|
+
"propext",
|
|
82
|
+
"Classical.choice",
|
|
83
|
+
"Quot.sound"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
"samples": {
|
|
87
|
+
"inputs": [
|
|
88
|
+
"contracts/m1-subcauses.json",
|
|
89
|
+
"contracts/m1-generator-binomial.json",
|
|
90
|
+
"samples/laws/m1-generator-binomial/yes/sample.json",
|
|
91
|
+
"samples/laws/m1-generator-binomial/no/sample.json",
|
|
92
|
+
"vectors/laws/policy.json"
|
|
93
|
+
],
|
|
94
|
+
"digests": {
|
|
95
|
+
"contracts/m1-subcauses.json": "sha256:8213a6cc3a5ca80a6adb594b9d8f28504c9566200a6d585f675585db2c8d45cc",
|
|
96
|
+
"contracts/m1-generator-binomial.json": "sha256:83f87903740a1c804d311700a229abf1f2f6a0c7ab1b8378d831dae77337f760",
|
|
97
|
+
"samples/laws/m1-generator-binomial/yes/sample.json": "sha256:6995cc280bd1fdec157eff9e08eebbddb1c15f328235e4937c2d693cf4648088",
|
|
98
|
+
"samples/laws/m1-generator-binomial/no/sample.json": "sha256:365a933ff20e6736f0d5742608cdc4b7f49d4d12135d8f2be3b4a1aebc1d749e",
|
|
99
|
+
"vectors/laws/policy.json": "sha256:e941ce8cd86f0ec31621fa6b4deef9685dc1fead283f4b2fe22a8a58e3d5d939"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"capturePolicy": {
|
|
103
|
+
"timeoutMs": 25000,
|
|
104
|
+
"responseBytes": 65536
|
|
105
|
+
},
|
|
106
|
+
"execution": {
|
|
107
|
+
"profile": "lean-kernel@1",
|
|
108
|
+
"project": "proofs/m1-046-bridge",
|
|
109
|
+
"toolchain": "leanprover/lean4:v4.19.0",
|
|
110
|
+
"compilerIdentity": "6caaee842e94",
|
|
111
|
+
"targets": [
|
|
112
|
+
"M1Bridge046"
|
|
113
|
+
],
|
|
114
|
+
"sources": [
|
|
115
|
+
"M1Bridge046.lean"
|
|
116
|
+
],
|
|
117
|
+
"auditImports": [
|
|
118
|
+
"M1Bridge046"
|
|
119
|
+
],
|
|
120
|
+
"identityInputs": [
|
|
121
|
+
"proofs/m1-046-bridge/M0Bridge.lean",
|
|
122
|
+
"proofs/m1-046-bridge/M1Bridge046.lean",
|
|
123
|
+
"proofs/m1-046-bridge/Obligations045/M0Limit.lean",
|
|
124
|
+
"proofs/m1-046-bridge/Obligations045/M0Offdiag.lean",
|
|
125
|
+
"proofs/m1-046-bridge/lake-manifest.json",
|
|
126
|
+
"proofs/m1-046-bridge/lakefile.toml",
|
|
127
|
+
"proofs/m1-046-bridge/lean-toolchain",
|
|
128
|
+
"vectors/laws/m1-generator-binomial.lean.json",
|
|
129
|
+
"contracts/m1-subcauses.json",
|
|
130
|
+
"contracts/m1-generator-binomial.json",
|
|
131
|
+
"samples/laws/m1-generator-binomial/yes/sample.json",
|
|
132
|
+
"samples/laws/m1-generator-binomial/no/sample.json",
|
|
133
|
+
"vectors/laws/policy.json"
|
|
134
|
+
],
|
|
135
|
+
"negative": {
|
|
136
|
+
"name": "unconditional-child-rate",
|
|
137
|
+
"source": "import M0Bridge\n\nopen scoped BigOperators\nopen MeasureTheory ProbabilityTheory\nnoncomputable section\nopen Classical\nnamespace Obligations046.M1Bridge\nopen Obligations046.Bridge\n\n/-- Four EXCLUSIVE outcomes of the sequential ancestor-first generator.\nFresh success/failure are distinct elementary outcomes, not a count-law premise. -/\ndef branchMass (p c1 c2 : \u211d) (e : Fin 4) : \u211d :=\n if e = 0 then c1 else if e = 1 then (1-c1)*c2\n else if e = 2 then (1-c1)*(1-c2)*p else (1-c1)*(1-c2)*(1-p)\ndef branchBit (A B : Bool) (e : Fin 4) : Bool :=\n if e = 0 then A else if e = 1 then B else decide (e = 2)\ndef success (p c1 c2 : \u211d) (A B : Bool) : \u211d :=\n c1*(if A then 1 else 0)+(1-c1)*c2*(if B then 1 else 0)+(1-c1)*(1-c2)*p\n\ntheorem branch_normalized (p c1 c2 : \u211d) : \u2211 e : Fin 4, branchMass p c1 c2 e = 1 := by\n simp [Fin.sum_univ_succ, branchMass]\n ring\n\ntheorem branch_nonneg (p c1 c2 : \u211d) (hp : 0 \u2264 p) (hp1 : p \u2264 1)\n (hc1 : 0 \u2264 c1) (hc1' : c1 \u2264 1) (hc2 : 0 \u2264 c2) (hc2' : c2 \u2264 1)\n (e : Fin 4) : 0 \u2264 branchMass p c1 c2 e := by\n have h1 : 0 \u2264 1-c1 := sub_nonneg.mpr hc1'\n have h2 : 0 \u2264 1-c2 := sub_nonneg.mpr hc2'\n have h3 : 0 \u2264 1-p := sub_nonneg.mpr hp1\n unfold branchMass\n split_ifs <;> positivity\n\ntheorem branch_bit_fiber (p c1 c2 : \u211d) (A B z : Bool) :\n (\u2211 e : Fin 4, if branchBit A B e = z then branchMass p c1 c2 e else 0) =\n if z then success p c1 c2 A B else 1-success p c1 c2 A B := by\n cases A <;> cases B <;> cases z <;>\n simp [Fin.sum_univ_succ, branchBit, branchMass, success] <;> ring\n\n/-- Bijection between raw named binary member outcomes and subsets, independent of probabilities. -/\ndef subsetBits (n : \u2115) : Finset (Fin n) \u2243 (Fin n \u2192 Bool) where\n toFun s j := decide (j \u2208 s)\n invFun z := Finset.univ.filter (fun j => z j)\n left_inv s := by ext j; simp\n right_inv z := by funext j; simp\n\ndef memberSubset {n : \u2115} (A B : Bool) (x : Fin n \u2192 Fin 4) : Finset (Fin n) :=\n Finset.univ.filter (fun j => branchBit A B (x j))\n\ntheorem selector_to_member (p c1 c2 : \u211d) (A B : Bool) (n : \u2115)\n (f : Finset (Fin n) \u2192 \u211d) :\n (\u2211 x : Fin n \u2192 Fin 4, (\u220f j, branchMass p c1 c2 (x j))*f (memberSubset A B x)) =\n \u2211 s : Finset (Fin n), mass (success p c1 c2 A B) s*f s := by\n have h := product_pushforward (fun (_j : Fin n) e => branchMass p c1 c2 e)\n (fun _ e => branchBit A B e) (fun z => f ((subsetBits n).symm z))\n simp only [branch_bit_fiber] at h\n change _ = _ at h\n calc\n _ = \u2211 z : Fin n \u2192 Bool,\n (\u220f j, if z j then success p c1 c2 A B else 1-success p c1 c2 A B)*\n f ((subsetBits n).symm z) := by simpa [memberSubset, subsetBits] using h\n _ = \u2211 s : Finset (Fin n), mass (success p c1 c2 A B) s*f s := by\n rw [\u2190 (subsetBits n).sum_comp]\n apply Finset.sum_congr rfl\n intro s _\n simp only [Equiv.symm_apply_apply]\n rw [mass_eq_individual_product]\n simp [subsetBits]\n\n/-- Push forward literal independent selectors to every joint lineage COUNT event. -/\ntheorem selector_count_fiber (p c1 c2 : \u211d) (A B : Bool) (n : \u2115) (k : Fin (n+1)) :\n (\u2211 x : Fin n \u2192 Fin 4,\n if count (memberSubset A B x) = k then \u220f j, branchMass p c1 c2 (x j) else 0) =\n binMass (success p c1 c2 A B) n k := by\n have h := selector_to_member p c1 c2 A B n (fun s => if count s = k then 1 else 0)\n simpa only [mul_ite, mul_one, mul_zero, count_fiber_mass] using h\n\n/-- p and weights/quota domain are exactly the existing M0 domain; c is c1 here.\nThe additional conditional child rate and named parent map are new model parameters. -/\nstructure Model where\n base : Obligations045.M0.Domain\n ancestors : \u2115\n parent : Fin base.K \u2192 Fin ancestors\n c2 : \u211d\n c2_nonneg : 0 \u2264 c2\n c2_lt_one : c2 < 1\n\nabbrev sizes (M : Model) (N : \u2115) (i : Fin M.base.K) :=\n Obligations045.M0.allocation M.base.w N i\nabbrev Ancestors (M : Model) := Fin M.ancestors \u2192 Bool\nabbrev Leaves (M : Model) := Fin M.base.K \u2192 Bool\nabbrev Raw (M : Model) (N : \u2115) := \u2200 i : Fin M.base.K, Fin (sizes M N i) \u2192 Fin 4\n\ndef q (M : Model) (A : Ancestors M) (B : Leaves M) (i : Fin M.base.K) : \u211d :=\n success M.base.p M.base.c M.c2 (A (M.parent i)) (B i)\ndef rawMass (M : Model) (N : \u2115) (x : Raw M N) : \u211d :=\n \u220f i, \u220f j, branchMass M.base.p M.base.c M.c2 (x i j)\ndef counts (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) (x : Raw M N) :=\n fun i => count (memberSubset (A (M.parent i)) (B i) (x i))\n\ntheorem rawMass_normalized (M : Model) (N : \u2115) : \u2211 x : Raw M N, rawMass M N x = 1 := by\n calc\n _ = \u220f i : Fin M.base.K, \u2211 x : Fin (sizes M N i) \u2192 Fin 4,\n \u220f j, branchMass M.base.p M.base.c M.c2 (x j) :=\n (Fintype.prod_sum (fun i (x : Fin (sizes M N i) \u2192 Fin 4) =>\n \u220f j, branchMass M.base.p M.base.c M.c2 (x j))).symm\n _ = 1 := by\n apply Finset.prod_eq_one\n intro i _\n rw [\u2190 Fintype.prod_sum (fun (_j : Fin (sizes M N i)) e => branchMass M.base.p M.base.c M.c2 e)]\n simp only [branch_normalized, Finset.prod_const_one]\n\ntheorem rawMass_nonneg (M : Model) (N : \u2115) (x : Raw M N) : 0 \u2264 rawMass M N x := by\n apply Finset.prod_nonneg\n intro i _\n apply Finset.prod_nonneg\n intro j _\n exact 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 _\n\n/-- Full finite expectation bridge: no binomial count premise, limit premise or CLT. -/\ntheorem generator_to_binomial (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M)\n (f : (\u2200 i : Fin M.base.K, Fin (sizes M N i+1)) \u2192 \u211d) :\n (\u2211 x : Raw M N, rawMass M N x*f (counts M N A B x)) =\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*f k := by\n have h := product_pushforward\n (fun i (x : Fin (sizes M N i) \u2192 Fin 4) => \u220f j, branchMass M.base.p M.base.c M.c2 (x j))\n (fun i x => count (memberSubset (A (M.parent i)) (B i) x)) f\n simpa only [selector_count_fiber, q, rawMass, counts] using h\n\ndef rawError (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) : \u211d :=\n \u2211 x : Raw M N, rawMass M N x *\n Obligations045.M0.fairLoss (\u2211 i, (counts M N A B x i : \u2115)) N\n\ndef binomialError (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) : \u211d :=\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*\n Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N\n\ntheorem conditional_error_bridge (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) :\n rawError M N A B = binomialError M N A B :=\n by\n simpa only [rawError, binomialError] using generator_to_binomial M N A B\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\n/-- Primitive jointly independent ancestor-selector, child-selector and fresh-vote bits.\nUnused primitive draws are retained in the world and summed out, not conditioned away. -/\nabbrev Primitive := Bool \u00d7 Bool \u00d7 Bool\ndef bernMass (r : \u211d) (b : Bool) : \u211d := if b then r else 1-r\ndef primitiveMass (p c1 c2 : \u211d) (t : Primitive) : \u211d :=\n bernMass c1 t.1 * bernMass c2 t.2.1 * bernMass p t.2.2\ndef primitiveBranch (t : Primitive) : Fin 4 :=\n if t.1 then 0 else if t.2.1 then 1 else if t.2.2 then 2 else 3\n\ntheorem primitive_branch_fiber (p c1 c2 : \u211d) (e : Fin 4) :\n (\u2211 t : Primitive, if primitiveBranch t = e then primitiveMass p c1 c2 t else 0) =\n branchMass p c1 c2 e := by\n fin_cases e <;>\n simp [Fintype.sum_prod_type, Fintype.sum_bool, primitiveBranch, primitiveMass, bernMass, branchMass] <;> ring\n\ntheorem primitive_normalized (p c1 c2 : \u211d) : \u2211 t : Primitive, primitiveMass p c1 c2 t = 1 := by\n simp [Fintype.sum_prod_type, Fintype.sum_bool, primitiveMass, bernMass]\n ring\n\ntheorem primitive_output_is_sequential (A B : Bool) (t : Primitive) :\n branchBit A B (primitiveBranch t) =\n if t.1 then A else if t.2.1 then B else t.2.2 := by\n rcases t with \u27e8u,v,f\u27e9\n cases u <;> cases v <;> cases f <;> rfl\n\ntheorem primitive_member_pushforward (p c1 c2 : \u211d) (n : \u2115)\n (f : (Fin n \u2192 Fin 4) \u2192 \u211d) :\n (\u2211 t : Fin n \u2192 Primitive, (\u220f j, primitiveMass p c1 c2 (t j))*\n f (fun j => primitiveBranch (t j))) =\n \u2211 x : Fin n \u2192 Fin 4, (\u220f j, branchMass p c1 c2 (x j))*f x := by\n simpa only [primitive_branch_fiber] using product_pushforward\n (fun (_j : Fin n) t => primitiveMass p c1 c2 t) (fun _ => primitiveBranch) f\n\ntheorem primitive_count_fiber (p c1 c2 : \u211d) (A B : Bool) (n : \u2115) (k : Fin (n+1)) :\n (\u2211 t : Fin n \u2192 Primitive,\n if count (memberSubset A B (fun j => primitiveBranch (t j))) = k\n then \u220f j, primitiveMass p c1 c2 (t j) else 0) =\n binMass (success p c1 c2 A B) n k := by\n have h := primitive_member_pushforward p c1 c2 n\n (fun x => if count (memberSubset A B x) = k then 1 else 0)\n simpa only [mul_ite, mul_one, mul_zero, selector_count_fiber] using h\n\nabbrev PrimitiveWorld (M : Model) (N : \u2115) :=\n \u2200 i : Fin M.base.K, Fin (sizes M N i) \u2192 Primitive\ndef primitiveJointMass (M : Model) (N : \u2115) (x : PrimitiveWorld M N) : \u211d :=\n \u220f i, \u220f j, primitiveMass M.base.p M.base.c M.c2 (x i j)\ndef primitiveCounts (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M)\n (x : PrimitiveWorld M N) :=\n fun i => count (memberSubset (A (M.parent i)) (B i) (fun j => primitiveBranch (x i j)))\n\n/-- The main bridge begins with the THREE INDEPENDENT PRIMITIVE BITS per named member,\nnot assumed Bernoulli output bits or an assumed binomial count distribution. -/\ntheorem primitive_generator_to_binomial (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M)\n (f : (\u2200 i : Fin M.base.K, Fin (sizes M N i+1)) \u2192 \u211d) :\n (\u2211 x : PrimitiveWorld M N, primitiveJointMass M N x*f (primitiveCounts M N A B x)) =\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*f k := by\n have h := product_pushforward\n (fun i (x : Fin (sizes M N i) \u2192 Primitive) => \u220f j, primitiveMass M.base.p M.base.c M.c2 (x j))\n (fun i x => count (memberSubset (A (M.parent i)) (B i) (fun j => primitiveBranch (x j)))) f\n simpa only [primitive_count_fiber, primitiveJointMass, primitiveCounts, q] using h\n\ntheorem bern_nonneg (r : \u211d) (hr : 0 \u2264 r) (hr1 : r \u2264 1) (b : Bool) :\n 0 \u2264 bernMass r b := by\n cases b <;> simp only [bernMass, Bool.false_eq_true, ite_false, ite_true]\n \u00b7 exact sub_nonneg.mpr hr1\n \u00b7 exact hr\n\ntheorem primitive_joint_nonneg (M : Model) (N : \u2115) (x : PrimitiveWorld M N) :\n 0 \u2264 primitiveJointMass M N x := by\n apply Finset.prod_nonneg\n intro i _\n apply Finset.prod_nonneg\n intro j _\n exact mul_nonneg\n (mul_nonneg (bern_nonneg _ M.base.c_nonneg M.base.c_lt_one.le _)\n (bern_nonneg _ M.c2_nonneg M.c2_lt_one.le _))\n (bern_nonneg _ (by linarith [M.base.p_half]) M.base.p_lt_one.le _)\n\ntheorem primitive_joint_normalized (M : Model) (N : \u2115) :\n \u2211 x : PrimitiveWorld M N, primitiveJointMass M N x = 1 := by\n calc\n _ = \u220f i : Fin M.base.K, \u2211 x : Fin (sizes M N i) \u2192 Primitive,\n \u220f j, primitiveMass M.base.p M.base.c M.c2 (x j) :=\n (Fintype.prod_sum (fun i (x : Fin (sizes M N i) \u2192 Primitive) =>\n \u220f j, primitiveMass M.base.p M.base.c M.c2 (x j))).symm\n _ = 1 := by\n apply Finset.prod_eq_one\n intro i _\n rw [\u2190 Fintype.prod_sum (fun (_j : Fin (sizes M N i)) t => primitiveMass M.base.p M.base.c M.c2 t)]\n simp only [primitive_normalized, Finset.prod_const_one]\n\ninstance primitiveMeasurableSpace (M : Model) (N : \u2115) :\n MeasurableSpace (PrimitiveWorld M N) := \u22a4\ninstance primitiveDiscreteMeasurable (M : Model) (N : \u2115) :\n DiscreteMeasurableSpace (PrimitiveWorld M N) := \u27e8fun _ => trivial\u27e9\n\n/-- Genuine finite PMF on independent primitive bits; no binomial premise. -/\ndef primitiveLaw (M : Model) (N : \u2115) : PMF (PrimitiveWorld M N) :=\n PMF.ofFintype (fun x => ENNReal.ofReal (primitiveJointMass M N x)) (by\n rw [\u2190 ENNReal.ofReal_sum_of_nonneg]\n \u00b7 simp [primitive_joint_normalized]\n \u00b7 intro x _\n exact primitive_joint_nonneg M N x)\n\ntheorem primitive_law_count_expectation (M : Model) (N : \u2115)\n (A : Ancestors M) (B : Leaves M)\n (f : (\u2200 i : Fin M.base.K, Fin (sizes M N i+1)) \u2192 \u211d) :\n (\u222b x, f (primitiveCounts M N A B x) \u2202(primitiveLaw M N).toMeasure) =\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*f k := by\n rw [PMF.integral_eq_sum]\n calc\n _ = \u2211 x : PrimitiveWorld M N,\n primitiveJointMass M N x*f (primitiveCounts M N A B x) := by\n apply Finset.sum_congr rfl\n intro x _\n simp only [primitiveLaw, PMF.ofFintype_apply, smul_eq_mul]\n rw [ENNReal.toReal_ofReal (primitive_joint_nonneg M N x)]\n _ = _ := primitive_generator_to_binomial M N A B f\n\ntheorem primitive_law_count_probability (M : Model) (N : \u2115)\n (A : Ancestors M) (B : Leaves M) (k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1)) :\n (\u222b x, if primitiveCounts M N A B x = k then (1:\u211d) else 0\n \u2202(primitiveLaw M N).toMeasure) = \u220f i, binMass (q M A B i) (sizes M N i) (k i) := by\n simpa using primitive_law_count_expectation M N A B (fun z => if z = k then (1:\u211d) else 0)\n\ntheorem primitive_law_error_bridge (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) :\n (\u222b x, Obligations045.M0.fairLoss (\u2211 i, (primitiveCounts M N A B x i : \u2115)) N\n \u2202(primitiveLaw M N).toMeasure) = binomialError M N A B :=\n by\n simpa only [binomialError] using primitive_law_count_expectation M N A B\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\ndef latentMass (M : Model) (A : Ancestors M) (B : Leaves M) : \u211d :=\n (\u220f g, bernMass M.base.p (A g))*(\u220f i, bernMass M.base.p (B i))\n\ntheorem latent_normalized (M : Model) :\n \u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B = 1 := by\n have ha : (\u2211 A : Ancestors M, \u220f g, bernMass M.base.p (A g)) = 1 := by\n rw [\u2190 Fintype.prod_sum]\n simp [Fintype.sum_bool, bernMass]\n have hb : (\u2211 B : Leaves M, \u220f i, bernMass M.base.p (B i)) = 1 := by\n rw [\u2190 Fintype.prod_sum]\n simp [Fintype.sum_bool, bernMass]\n simp only [latentMass, \u2190 Finset.mul_sum, hb, mul_one, ha]\n\ntheorem mixture_error_bridge (M : Model) (N : \u2115) :\n (\u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B *\n \u222b x, Obligations045.M0.fairLoss (\u2211 i, (primitiveCounts M N A B x i : \u2115)) N\n \u2202(primitiveLaw M N).toMeasure) =\n \u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B * binomialError M N A B := by\n simp only [primitive_law_error_bridge]\n\n/-- Pure algebraic reduction only; no new limit or uncertainty certificate. -/\ntheorem zero_ancestor_reduction (M : Model) (A : Ancestors M) (B : Leaves M)\n (hc : M.base.c = 0) (i : Fin M.base.K) :\n q M A B i = (1-M.c2)*M.base.p + if B i then M.c2 else 0 := by\n cases h : B i <;> simp [q, success, hc, h, add_comm]\n\ntheorem latent_nonneg (M : Model) (A : Ancestors M) (B : Leaves M) :\n 0 \u2264 latentMass M A B := by\n apply mul_nonneg <;> apply Finset.prod_nonneg <;> intro i _ <;>\n exact bern_nonneg _ (by linarith [M.base.p_half]) M.base.p_lt_one.le _\n\nabbrev FullWorld (M : Model) (N : \u2115) := (Ancestors M \u00d7 Leaves M) \u00d7 PrimitiveWorld M N\ndef fullMass (M : Model) (N : \u2115) (x : FullWorld M N) : \u211d :=\n latentMass M x.1.1 x.1.2 * primitiveJointMass M N x.2\n\ntheorem fullMass_nonneg (M : Model) (N : \u2115) (x : FullWorld M N) : 0 \u2264 fullMass M N x :=\n mul_nonneg (latent_nonneg M _ _) (primitive_joint_nonneg M N _)\n\ntheorem fullMass_normalized (M : Model) (N : \u2115) : \u2211 x : FullWorld M N, fullMass M N x = 1 := by\n simp only [Fintype.sum_prod_type, fullMass, \u2190 Finset.mul_sum,\n primitive_joint_normalized, mul_one, latent_normalized]\n\ninstance fullMeasurableSpace (M : Model) (N : \u2115) : MeasurableSpace (FullWorld M N) := \u22a4\ninstance fullDiscreteMeasurable (M : Model) (N : \u2115) :\n DiscreteMeasurableSpace (FullWorld M N) := \u27e8fun _ => trivial\u27e9\n\n/-- The COMPLETE finite generative law includes jointly independent latent bits\nand all independent selector/fresh primitive draws. -/\ndef fullLaw (M : Model) (N : \u2115) : PMF (FullWorld M N) :=\n PMF.ofFintype (fun x => ENNReal.ofReal (fullMass M N x)) (by\n rw [\u2190 ENNReal.ofReal_sum_of_nonneg]\n \u00b7 simp [fullMass_normalized]\n \u00b7 intro x _\n exact fullMass_nonneg M N x)\n\ndef implementationError (M : Model) (N : \u2115) : \u211d :=\n \u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B * binomialError M N A B\n\n/-- Complete generator\u2013implementation bridge for every finiteN. No count distribution,\nerror convergence, causal identification or oracle-free calibration is assumed. -/\ntheorem full_generator_error_bridge (M : Model) (N : \u2115) :\n (\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 implementationError M N := by\n rw [PMF.integral_eq_sum]\n have hp (x : FullWorld M N) : ((fullLaw M N) x).toReal = fullMass M N x := by\n simp only [fullLaw, PMF.ofFintype_apply]\n exact ENNReal.toReal_ofReal (fullMass_nonneg M N x)\n simp_rw [smul_eq_mul, hp]\n simp only [Fintype.sum_prod_type, implementationError, fullMass, mul_assoc]\n apply Finset.sum_congr rfl\n intro A _\n apply Finset.sum_congr rfl\n intro B _\n rw [\u2190 Finset.mul_sum]\n congr 1\n simpa only [binomialError] using primitive_generator_to_binomial M N A B\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\nend Obligations046.M1Bridge\n\nopen Obligations046.M1Bridge\nexample : success (2/3) (1/2) (1/2) false true = (1/2:\u211d) := by norm_num [success, branchMass]\n",
|
|
138
|
+
"exitCode": 1,
|
|
139
|
+
"cause": [
|
|
140
|
+
"unsolved goals"
|
|
141
|
+
]
|
|
142
|
+
},
|
|
143
|
+
"extraNegatives": [
|
|
144
|
+
{
|
|
145
|
+
"name": "priority-erased",
|
|
146
|
+
"source": "import M0Bridge\n\nopen scoped BigOperators\nopen MeasureTheory ProbabilityTheory\nnoncomputable section\nopen Classical\nnamespace Obligations046.M1Bridge\nopen Obligations046.Bridge\n\n/-- Four EXCLUSIVE outcomes of the sequential ancestor-first generator.\nFresh success/failure are distinct elementary outcomes, not a count-law premise. -/\ndef branchMass (p c1 c2 : \u211d) (e : Fin 4) : \u211d :=\n if e = 0 then c1 else if e = 1 then (1-c1)*c2\n else if e = 2 then (1-c1)*(1-c2)*p else (1-c1)*(1-c2)*(1-p)\ndef branchBit (A B : Bool) (e : Fin 4) : Bool :=\n if e = 0 then A else if e = 1 then B else decide (e = 2)\ndef success (p c1 c2 : \u211d) (A B : Bool) : \u211d :=\n c1*(if A then 1 else 0)+(1-c1)*c2*(if B then 1 else 0)+(1-c1)*(1-c2)*p\n\ntheorem branch_normalized (p c1 c2 : \u211d) : \u2211 e : Fin 4, branchMass p c1 c2 e = 1 := by\n simp [Fin.sum_univ_succ, branchMass]\n ring\n\ntheorem branch_nonneg (p c1 c2 : \u211d) (hp : 0 \u2264 p) (hp1 : p \u2264 1)\n (hc1 : 0 \u2264 c1) (hc1' : c1 \u2264 1) (hc2 : 0 \u2264 c2) (hc2' : c2 \u2264 1)\n (e : Fin 4) : 0 \u2264 branchMass p c1 c2 e := by\n have h1 : 0 \u2264 1-c1 := sub_nonneg.mpr hc1'\n have h2 : 0 \u2264 1-c2 := sub_nonneg.mpr hc2'\n have h3 : 0 \u2264 1-p := sub_nonneg.mpr hp1\n unfold branchMass\n split_ifs <;> positivity\n\ntheorem branch_bit_fiber (p c1 c2 : \u211d) (A B z : Bool) :\n (\u2211 e : Fin 4, if branchBit A B e = z then branchMass p c1 c2 e else 0) =\n if z then success p c1 c2 A B else 1-success p c1 c2 A B := by\n cases A <;> cases B <;> cases z <;>\n simp [Fin.sum_univ_succ, branchBit, branchMass, success] <;> ring\n\n/-- Bijection between raw named binary member outcomes and subsets, independent of probabilities. -/\ndef subsetBits (n : \u2115) : Finset (Fin n) \u2243 (Fin n \u2192 Bool) where\n toFun s j := decide (j \u2208 s)\n invFun z := Finset.univ.filter (fun j => z j)\n left_inv s := by ext j; simp\n right_inv z := by funext j; simp\n\ndef memberSubset {n : \u2115} (A B : Bool) (x : Fin n \u2192 Fin 4) : Finset (Fin n) :=\n Finset.univ.filter (fun j => branchBit A B (x j))\n\ntheorem selector_to_member (p c1 c2 : \u211d) (A B : Bool) (n : \u2115)\n (f : Finset (Fin n) \u2192 \u211d) :\n (\u2211 x : Fin n \u2192 Fin 4, (\u220f j, branchMass p c1 c2 (x j))*f (memberSubset A B x)) =\n \u2211 s : Finset (Fin n), mass (success p c1 c2 A B) s*f s := by\n have h := product_pushforward (fun (_j : Fin n) e => branchMass p c1 c2 e)\n (fun _ e => branchBit A B e) (fun z => f ((subsetBits n).symm z))\n simp only [branch_bit_fiber] at h\n change _ = _ at h\n calc\n _ = \u2211 z : Fin n \u2192 Bool,\n (\u220f j, if z j then success p c1 c2 A B else 1-success p c1 c2 A B)*\n f ((subsetBits n).symm z) := by simpa [memberSubset, subsetBits] using h\n _ = \u2211 s : Finset (Fin n), mass (success p c1 c2 A B) s*f s := by\n rw [\u2190 (subsetBits n).sum_comp]\n apply Finset.sum_congr rfl\n intro s _\n simp only [Equiv.symm_apply_apply]\n rw [mass_eq_individual_product]\n simp [subsetBits]\n\n/-- Push forward literal independent selectors to every joint lineage COUNT event. -/\ntheorem selector_count_fiber (p c1 c2 : \u211d) (A B : Bool) (n : \u2115) (k : Fin (n+1)) :\n (\u2211 x : Fin n \u2192 Fin 4,\n if count (memberSubset A B x) = k then \u220f j, branchMass p c1 c2 (x j) else 0) =\n binMass (success p c1 c2 A B) n k := by\n have h := selector_to_member p c1 c2 A B n (fun s => if count s = k then 1 else 0)\n simpa only [mul_ite, mul_one, mul_zero, count_fiber_mass] using h\n\n/-- p and weights/quota domain are exactly the existing M0 domain; c is c1 here.\nThe additional conditional child rate and named parent map are new model parameters. -/\nstructure Model where\n base : Obligations045.M0.Domain\n ancestors : \u2115\n parent : Fin base.K \u2192 Fin ancestors\n c2 : \u211d\n c2_nonneg : 0 \u2264 c2\n c2_lt_one : c2 < 1\n\nabbrev sizes (M : Model) (N : \u2115) (i : Fin M.base.K) :=\n Obligations045.M0.allocation M.base.w N i\nabbrev Ancestors (M : Model) := Fin M.ancestors \u2192 Bool\nabbrev Leaves (M : Model) := Fin M.base.K \u2192 Bool\nabbrev Raw (M : Model) (N : \u2115) := \u2200 i : Fin M.base.K, Fin (sizes M N i) \u2192 Fin 4\n\ndef q (M : Model) (A : Ancestors M) (B : Leaves M) (i : Fin M.base.K) : \u211d :=\n success M.base.p M.base.c M.c2 (A (M.parent i)) (B i)\ndef rawMass (M : Model) (N : \u2115) (x : Raw M N) : \u211d :=\n \u220f i, \u220f j, branchMass M.base.p M.base.c M.c2 (x i j)\ndef counts (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) (x : Raw M N) :=\n fun i => count (memberSubset (A (M.parent i)) (B i) (x i))\n\ntheorem rawMass_normalized (M : Model) (N : \u2115) : \u2211 x : Raw M N, rawMass M N x = 1 := by\n calc\n _ = \u220f i : Fin M.base.K, \u2211 x : Fin (sizes M N i) \u2192 Fin 4,\n \u220f j, branchMass M.base.p M.base.c M.c2 (x j) :=\n (Fintype.prod_sum (fun i (x : Fin (sizes M N i) \u2192 Fin 4) =>\n \u220f j, branchMass M.base.p M.base.c M.c2 (x j))).symm\n _ = 1 := by\n apply Finset.prod_eq_one\n intro i _\n rw [\u2190 Fintype.prod_sum (fun (_j : Fin (sizes M N i)) e => branchMass M.base.p M.base.c M.c2 e)]\n simp only [branch_normalized, Finset.prod_const_one]\n\ntheorem rawMass_nonneg (M : Model) (N : \u2115) (x : Raw M N) : 0 \u2264 rawMass M N x := by\n apply Finset.prod_nonneg\n intro i _\n apply Finset.prod_nonneg\n intro j _\n exact 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 _\n\n/-- Full finite expectation bridge: no binomial count premise, limit premise or CLT. -/\ntheorem generator_to_binomial (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M)\n (f : (\u2200 i : Fin M.base.K, Fin (sizes M N i+1)) \u2192 \u211d) :\n (\u2211 x : Raw M N, rawMass M N x*f (counts M N A B x)) =\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*f k := by\n have h := product_pushforward\n (fun i (x : Fin (sizes M N i) \u2192 Fin 4) => \u220f j, branchMass M.base.p M.base.c M.c2 (x j))\n (fun i x => count (memberSubset (A (M.parent i)) (B i) x)) f\n simpa only [selector_count_fiber, q, rawMass, counts] using h\n\ndef rawError (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) : \u211d :=\n \u2211 x : Raw M N, rawMass M N x *\n Obligations045.M0.fairLoss (\u2211 i, (counts M N A B x i : \u2115)) N\n\ndef binomialError (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) : \u211d :=\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*\n Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N\n\ntheorem conditional_error_bridge (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) :\n rawError M N A B = binomialError M N A B :=\n by\n simpa only [rawError, binomialError] using generator_to_binomial M N A B\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\n/-- Primitive jointly independent ancestor-selector, child-selector and fresh-vote bits.\nUnused primitive draws are retained in the world and summed out, not conditioned away. -/\nabbrev Primitive := Bool \u00d7 Bool \u00d7 Bool\ndef bernMass (r : \u211d) (b : Bool) : \u211d := if b then r else 1-r\ndef primitiveMass (p c1 c2 : \u211d) (t : Primitive) : \u211d :=\n bernMass c1 t.1 * bernMass c2 t.2.1 * bernMass p t.2.2\ndef primitiveBranch (t : Primitive) : Fin 4 :=\n if t.1 then 0 else if t.2.1 then 1 else if t.2.2 then 2 else 3\n\ntheorem primitive_branch_fiber (p c1 c2 : \u211d) (e : Fin 4) :\n (\u2211 t : Primitive, if primitiveBranch t = e then primitiveMass p c1 c2 t else 0) =\n branchMass p c1 c2 e := by\n fin_cases e <;>\n simp [Fintype.sum_prod_type, Fintype.sum_bool, primitiveBranch, primitiveMass, bernMass, branchMass] <;> ring\n\ntheorem primitive_normalized (p c1 c2 : \u211d) : \u2211 t : Primitive, primitiveMass p c1 c2 t = 1 := by\n simp [Fintype.sum_prod_type, Fintype.sum_bool, primitiveMass, bernMass]\n ring\n\ntheorem primitive_output_is_sequential (A B : Bool) (t : Primitive) :\n branchBit A B (primitiveBranch t) =\n if t.1 then A else if t.2.1 then B else t.2.2 := by\n rcases t with \u27e8u,v,f\u27e9\n cases u <;> cases v <;> cases f <;> rfl\n\ntheorem primitive_member_pushforward (p c1 c2 : \u211d) (n : \u2115)\n (f : (Fin n \u2192 Fin 4) \u2192 \u211d) :\n (\u2211 t : Fin n \u2192 Primitive, (\u220f j, primitiveMass p c1 c2 (t j))*\n f (fun j => primitiveBranch (t j))) =\n \u2211 x : Fin n \u2192 Fin 4, (\u220f j, branchMass p c1 c2 (x j))*f x := by\n simpa only [primitive_branch_fiber] using product_pushforward\n (fun (_j : Fin n) t => primitiveMass p c1 c2 t) (fun _ => primitiveBranch) f\n\ntheorem primitive_count_fiber (p c1 c2 : \u211d) (A B : Bool) (n : \u2115) (k : Fin (n+1)) :\n (\u2211 t : Fin n \u2192 Primitive,\n if count (memberSubset A B (fun j => primitiveBranch (t j))) = k\n then \u220f j, primitiveMass p c1 c2 (t j) else 0) =\n binMass (success p c1 c2 A B) n k := by\n have h := primitive_member_pushforward p c1 c2 n\n (fun x => if count (memberSubset A B x) = k then 1 else 0)\n simpa only [mul_ite, mul_one, mul_zero, selector_count_fiber] using h\n\nabbrev PrimitiveWorld (M : Model) (N : \u2115) :=\n \u2200 i : Fin M.base.K, Fin (sizes M N i) \u2192 Primitive\ndef primitiveJointMass (M : Model) (N : \u2115) (x : PrimitiveWorld M N) : \u211d :=\n \u220f i, \u220f j, primitiveMass M.base.p M.base.c M.c2 (x i j)\ndef primitiveCounts (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M)\n (x : PrimitiveWorld M N) :=\n fun i => count (memberSubset (A (M.parent i)) (B i) (fun j => primitiveBranch (x i j)))\n\n/-- The main bridge begins with the THREE INDEPENDENT PRIMITIVE BITS per named member,\nnot assumed Bernoulli output bits or an assumed binomial count distribution. -/\ntheorem primitive_generator_to_binomial (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M)\n (f : (\u2200 i : Fin M.base.K, Fin (sizes M N i+1)) \u2192 \u211d) :\n (\u2211 x : PrimitiveWorld M N, primitiveJointMass M N x*f (primitiveCounts M N A B x)) =\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*f k := by\n have h := product_pushforward\n (fun i (x : Fin (sizes M N i) \u2192 Primitive) => \u220f j, primitiveMass M.base.p M.base.c M.c2 (x j))\n (fun i x => count (memberSubset (A (M.parent i)) (B i) (fun j => primitiveBranch (x j)))) f\n simpa only [primitive_count_fiber, primitiveJointMass, primitiveCounts, q] using h\n\ntheorem bern_nonneg (r : \u211d) (hr : 0 \u2264 r) (hr1 : r \u2264 1) (b : Bool) :\n 0 \u2264 bernMass r b := by\n cases b <;> simp only [bernMass, Bool.false_eq_true, ite_false, ite_true]\n \u00b7 exact sub_nonneg.mpr hr1\n \u00b7 exact hr\n\ntheorem primitive_joint_nonneg (M : Model) (N : \u2115) (x : PrimitiveWorld M N) :\n 0 \u2264 primitiveJointMass M N x := by\n apply Finset.prod_nonneg\n intro i _\n apply Finset.prod_nonneg\n intro j _\n exact mul_nonneg\n (mul_nonneg (bern_nonneg _ M.base.c_nonneg M.base.c_lt_one.le _)\n (bern_nonneg _ M.c2_nonneg M.c2_lt_one.le _))\n (bern_nonneg _ (by linarith [M.base.p_half]) M.base.p_lt_one.le _)\n\ntheorem primitive_joint_normalized (M : Model) (N : \u2115) :\n \u2211 x : PrimitiveWorld M N, primitiveJointMass M N x = 1 := by\n calc\n _ = \u220f i : Fin M.base.K, \u2211 x : Fin (sizes M N i) \u2192 Primitive,\n \u220f j, primitiveMass M.base.p M.base.c M.c2 (x j) :=\n (Fintype.prod_sum (fun i (x : Fin (sizes M N i) \u2192 Primitive) =>\n \u220f j, primitiveMass M.base.p M.base.c M.c2 (x j))).symm\n _ = 1 := by\n apply Finset.prod_eq_one\n intro i _\n rw [\u2190 Fintype.prod_sum (fun (_j : Fin (sizes M N i)) t => primitiveMass M.base.p M.base.c M.c2 t)]\n simp only [primitive_normalized, Finset.prod_const_one]\n\ninstance primitiveMeasurableSpace (M : Model) (N : \u2115) :\n MeasurableSpace (PrimitiveWorld M N) := \u22a4\ninstance primitiveDiscreteMeasurable (M : Model) (N : \u2115) :\n DiscreteMeasurableSpace (PrimitiveWorld M N) := \u27e8fun _ => trivial\u27e9\n\n/-- Genuine finite PMF on independent primitive bits; no binomial premise. -/\ndef primitiveLaw (M : Model) (N : \u2115) : PMF (PrimitiveWorld M N) :=\n PMF.ofFintype (fun x => ENNReal.ofReal (primitiveJointMass M N x)) (by\n rw [\u2190 ENNReal.ofReal_sum_of_nonneg]\n \u00b7 simp [primitive_joint_normalized]\n \u00b7 intro x _\n exact primitive_joint_nonneg M N x)\n\ntheorem primitive_law_count_expectation (M : Model) (N : \u2115)\n (A : Ancestors M) (B : Leaves M)\n (f : (\u2200 i : Fin M.base.K, Fin (sizes M N i+1)) \u2192 \u211d) :\n (\u222b x, f (primitiveCounts M N A B x) \u2202(primitiveLaw M N).toMeasure) =\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*f k := by\n rw [PMF.integral_eq_sum]\n calc\n _ = \u2211 x : PrimitiveWorld M N,\n primitiveJointMass M N x*f (primitiveCounts M N A B x) := by\n apply Finset.sum_congr rfl\n intro x _\n simp only [primitiveLaw, PMF.ofFintype_apply, smul_eq_mul]\n rw [ENNReal.toReal_ofReal (primitive_joint_nonneg M N x)]\n _ = _ := primitive_generator_to_binomial M N A B f\n\ntheorem primitive_law_count_probability (M : Model) (N : \u2115)\n (A : Ancestors M) (B : Leaves M) (k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1)) :\n (\u222b x, if primitiveCounts M N A B x = k then (1:\u211d) else 0\n \u2202(primitiveLaw M N).toMeasure) = \u220f i, binMass (q M A B i) (sizes M N i) (k i) := by\n simpa using primitive_law_count_expectation M N A B (fun z => if z = k then (1:\u211d) else 0)\n\ntheorem primitive_law_error_bridge (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) :\n (\u222b x, Obligations045.M0.fairLoss (\u2211 i, (primitiveCounts M N A B x i : \u2115)) N\n \u2202(primitiveLaw M N).toMeasure) = binomialError M N A B :=\n by\n simpa only [binomialError] using primitive_law_count_expectation M N A B\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\ndef latentMass (M : Model) (A : Ancestors M) (B : Leaves M) : \u211d :=\n (\u220f g, bernMass M.base.p (A g))*(\u220f i, bernMass M.base.p (B i))\n\ntheorem latent_normalized (M : Model) :\n \u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B = 1 := by\n have ha : (\u2211 A : Ancestors M, \u220f g, bernMass M.base.p (A g)) = 1 := by\n rw [\u2190 Fintype.prod_sum]\n simp [Fintype.sum_bool, bernMass]\n have hb : (\u2211 B : Leaves M, \u220f i, bernMass M.base.p (B i)) = 1 := by\n rw [\u2190 Fintype.prod_sum]\n simp [Fintype.sum_bool, bernMass]\n simp only [latentMass, \u2190 Finset.mul_sum, hb, mul_one, ha]\n\ntheorem mixture_error_bridge (M : Model) (N : \u2115) :\n (\u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B *\n \u222b x, Obligations045.M0.fairLoss (\u2211 i, (primitiveCounts M N A B x i : \u2115)) N\n \u2202(primitiveLaw M N).toMeasure) =\n \u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B * binomialError M N A B := by\n simp only [primitive_law_error_bridge]\n\n/-- Pure algebraic reduction only; no new limit or uncertainty certificate. -/\ntheorem zero_ancestor_reduction (M : Model) (A : Ancestors M) (B : Leaves M)\n (hc : M.base.c = 0) (i : Fin M.base.K) :\n q M A B i = (1-M.c2)*M.base.p + if B i then M.c2 else 0 := by\n cases h : B i <;> simp [q, success, hc, h, add_comm]\n\ntheorem latent_nonneg (M : Model) (A : Ancestors M) (B : Leaves M) :\n 0 \u2264 latentMass M A B := by\n apply mul_nonneg <;> apply Finset.prod_nonneg <;> intro i _ <;>\n exact bern_nonneg _ (by linarith [M.base.p_half]) M.base.p_lt_one.le _\n\nabbrev FullWorld (M : Model) (N : \u2115) := (Ancestors M \u00d7 Leaves M) \u00d7 PrimitiveWorld M N\ndef fullMass (M : Model) (N : \u2115) (x : FullWorld M N) : \u211d :=\n latentMass M x.1.1 x.1.2 * primitiveJointMass M N x.2\n\ntheorem fullMass_nonneg (M : Model) (N : \u2115) (x : FullWorld M N) : 0 \u2264 fullMass M N x :=\n mul_nonneg (latent_nonneg M _ _) (primitive_joint_nonneg M N _)\n\ntheorem fullMass_normalized (M : Model) (N : \u2115) : \u2211 x : FullWorld M N, fullMass M N x = 1 := by\n simp only [Fintype.sum_prod_type, fullMass, \u2190 Finset.mul_sum,\n primitive_joint_normalized, mul_one, latent_normalized]\n\ninstance fullMeasurableSpace (M : Model) (N : \u2115) : MeasurableSpace (FullWorld M N) := \u22a4\ninstance fullDiscreteMeasurable (M : Model) (N : \u2115) :\n DiscreteMeasurableSpace (FullWorld M N) := \u27e8fun _ => trivial\u27e9\n\n/-- The COMPLETE finite generative law includes jointly independent latent bits\nand all independent selector/fresh primitive draws. -/\ndef fullLaw (M : Model) (N : \u2115) : PMF (FullWorld M N) :=\n PMF.ofFintype (fun x => ENNReal.ofReal (fullMass M N x)) (by\n rw [\u2190 ENNReal.ofReal_sum_of_nonneg]\n \u00b7 simp [fullMass_normalized]\n \u00b7 intro x _\n exact fullMass_nonneg M N x)\n\ndef implementationError (M : Model) (N : \u2115) : \u211d :=\n \u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B * binomialError M N A B\n\n/-- Complete generator\u2013implementation bridge for every finiteN. No count distribution,\nerror convergence, causal identification or oracle-free calibration is assumed. -/\ntheorem full_generator_error_bridge (M : Model) (N : \u2115) :\n (\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 implementationError M N := by\n rw [PMF.integral_eq_sum]\n have hp (x : FullWorld M N) : ((fullLaw M N) x).toReal = fullMass M N x := by\n simp only [fullLaw, PMF.ofFintype_apply]\n exact ENNReal.toReal_ofReal (fullMass_nonneg M N x)\n simp_rw [smul_eq_mul, hp]\n simp only [Fintype.sum_prod_type, implementationError, fullMass, mul_assoc]\n apply Finset.sum_congr rfl\n intro A _\n apply Finset.sum_congr rfl\n intro B _\n rw [\u2190 Finset.mul_sum]\n congr 1\n simpa only [binomialError] using primitive_generator_to_binomial M N A B\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\nend Obligations046.M1Bridge\n\nopen Obligations046.M1Bridge\nexample : success (2/3) (1/2) (1/2) false true = (2/3:\u211d) := by norm_num [success, branchMass]\n",
|
|
147
|
+
"exitCode": 1,
|
|
148
|
+
"cause": [
|
|
149
|
+
"unsolved goals"
|
|
150
|
+
]
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"name": "shared-selector-as-independent",
|
|
154
|
+
"source": "import M0Bridge\n\nopen scoped BigOperators\nopen MeasureTheory ProbabilityTheory\nnoncomputable section\nopen Classical\nnamespace Obligations046.M1Bridge\nopen Obligations046.Bridge\n\n/-- Four EXCLUSIVE outcomes of the sequential ancestor-first generator.\nFresh success/failure are distinct elementary outcomes, not a count-law premise. -/\ndef branchMass (p c1 c2 : \u211d) (e : Fin 4) : \u211d :=\n if e = 0 then c1 else if e = 1 then (1-c1)*c2\n else if e = 2 then (1-c1)*(1-c2)*p else (1-c1)*(1-c2)*(1-p)\ndef branchBit (A B : Bool) (e : Fin 4) : Bool :=\n if e = 0 then A else if e = 1 then B else decide (e = 2)\ndef success (p c1 c2 : \u211d) (A B : Bool) : \u211d :=\n c1*(if A then 1 else 0)+(1-c1)*c2*(if B then 1 else 0)+(1-c1)*(1-c2)*p\n\ntheorem branch_normalized (p c1 c2 : \u211d) : \u2211 e : Fin 4, branchMass p c1 c2 e = 1 := by\n simp [Fin.sum_univ_succ, branchMass]\n ring\n\ntheorem branch_nonneg (p c1 c2 : \u211d) (hp : 0 \u2264 p) (hp1 : p \u2264 1)\n (hc1 : 0 \u2264 c1) (hc1' : c1 \u2264 1) (hc2 : 0 \u2264 c2) (hc2' : c2 \u2264 1)\n (e : Fin 4) : 0 \u2264 branchMass p c1 c2 e := by\n have h1 : 0 \u2264 1-c1 := sub_nonneg.mpr hc1'\n have h2 : 0 \u2264 1-c2 := sub_nonneg.mpr hc2'\n have h3 : 0 \u2264 1-p := sub_nonneg.mpr hp1\n unfold branchMass\n split_ifs <;> positivity\n\ntheorem branch_bit_fiber (p c1 c2 : \u211d) (A B z : Bool) :\n (\u2211 e : Fin 4, if branchBit A B e = z then branchMass p c1 c2 e else 0) =\n if z then success p c1 c2 A B else 1-success p c1 c2 A B := by\n cases A <;> cases B <;> cases z <;>\n simp [Fin.sum_univ_succ, branchBit, branchMass, success] <;> ring\n\n/-- Bijection between raw named binary member outcomes and subsets, independent of probabilities. -/\ndef subsetBits (n : \u2115) : Finset (Fin n) \u2243 (Fin n \u2192 Bool) where\n toFun s j := decide (j \u2208 s)\n invFun z := Finset.univ.filter (fun j => z j)\n left_inv s := by ext j; simp\n right_inv z := by funext j; simp\n\ndef memberSubset {n : \u2115} (A B : Bool) (x : Fin n \u2192 Fin 4) : Finset (Fin n) :=\n Finset.univ.filter (fun j => branchBit A B (x j))\n\ntheorem selector_to_member (p c1 c2 : \u211d) (A B : Bool) (n : \u2115)\n (f : Finset (Fin n) \u2192 \u211d) :\n (\u2211 x : Fin n \u2192 Fin 4, (\u220f j, branchMass p c1 c2 (x j))*f (memberSubset A B x)) =\n \u2211 s : Finset (Fin n), mass (success p c1 c2 A B) s*f s := by\n have h := product_pushforward (fun (_j : Fin n) e => branchMass p c1 c2 e)\n (fun _ e => branchBit A B e) (fun z => f ((subsetBits n).symm z))\n simp only [branch_bit_fiber] at h\n change _ = _ at h\n calc\n _ = \u2211 z : Fin n \u2192 Bool,\n (\u220f j, if z j then success p c1 c2 A B else 1-success p c1 c2 A B)*\n f ((subsetBits n).symm z) := by simpa [memberSubset, subsetBits] using h\n _ = \u2211 s : Finset (Fin n), mass (success p c1 c2 A B) s*f s := by\n rw [\u2190 (subsetBits n).sum_comp]\n apply Finset.sum_congr rfl\n intro s _\n simp only [Equiv.symm_apply_apply]\n rw [mass_eq_individual_product]\n simp [subsetBits]\n\n/-- Push forward literal independent selectors to every joint lineage COUNT event. -/\ntheorem selector_count_fiber (p c1 c2 : \u211d) (A B : Bool) (n : \u2115) (k : Fin (n+1)) :\n (\u2211 x : Fin n \u2192 Fin 4,\n if count (memberSubset A B x) = k then \u220f j, branchMass p c1 c2 (x j) else 0) =\n binMass (success p c1 c2 A B) n k := by\n have h := selector_to_member p c1 c2 A B n (fun s => if count s = k then 1 else 0)\n simpa only [mul_ite, mul_one, mul_zero, count_fiber_mass] using h\n\n/-- p and weights/quota domain are exactly the existing M0 domain; c is c1 here.\nThe additional conditional child rate and named parent map are new model parameters. -/\nstructure Model where\n base : Obligations045.M0.Domain\n ancestors : \u2115\n parent : Fin base.K \u2192 Fin ancestors\n c2 : \u211d\n c2_nonneg : 0 \u2264 c2\n c2_lt_one : c2 < 1\n\nabbrev sizes (M : Model) (N : \u2115) (i : Fin M.base.K) :=\n Obligations045.M0.allocation M.base.w N i\nabbrev Ancestors (M : Model) := Fin M.ancestors \u2192 Bool\nabbrev Leaves (M : Model) := Fin M.base.K \u2192 Bool\nabbrev Raw (M : Model) (N : \u2115) := \u2200 i : Fin M.base.K, Fin (sizes M N i) \u2192 Fin 4\n\ndef q (M : Model) (A : Ancestors M) (B : Leaves M) (i : Fin M.base.K) : \u211d :=\n success M.base.p M.base.c M.c2 (A (M.parent i)) (B i)\ndef rawMass (M : Model) (N : \u2115) (x : Raw M N) : \u211d :=\n \u220f i, \u220f j, branchMass M.base.p M.base.c M.c2 (x i j)\ndef counts (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) (x : Raw M N) :=\n fun i => count (memberSubset (A (M.parent i)) (B i) (x i))\n\ntheorem rawMass_normalized (M : Model) (N : \u2115) : \u2211 x : Raw M N, rawMass M N x = 1 := by\n calc\n _ = \u220f i : Fin M.base.K, \u2211 x : Fin (sizes M N i) \u2192 Fin 4,\n \u220f j, branchMass M.base.p M.base.c M.c2 (x j) :=\n (Fintype.prod_sum (fun i (x : Fin (sizes M N i) \u2192 Fin 4) =>\n \u220f j, branchMass M.base.p M.base.c M.c2 (x j))).symm\n _ = 1 := by\n apply Finset.prod_eq_one\n intro i _\n rw [\u2190 Fintype.prod_sum (fun (_j : Fin (sizes M N i)) e => branchMass M.base.p M.base.c M.c2 e)]\n simp only [branch_normalized, Finset.prod_const_one]\n\ntheorem rawMass_nonneg (M : Model) (N : \u2115) (x : Raw M N) : 0 \u2264 rawMass M N x := by\n apply Finset.prod_nonneg\n intro i _\n apply Finset.prod_nonneg\n intro j _\n exact 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 _\n\n/-- Full finite expectation bridge: no binomial count premise, limit premise or CLT. -/\ntheorem generator_to_binomial (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M)\n (f : (\u2200 i : Fin M.base.K, Fin (sizes M N i+1)) \u2192 \u211d) :\n (\u2211 x : Raw M N, rawMass M N x*f (counts M N A B x)) =\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*f k := by\n have h := product_pushforward\n (fun i (x : Fin (sizes M N i) \u2192 Fin 4) => \u220f j, branchMass M.base.p M.base.c M.c2 (x j))\n (fun i x => count (memberSubset (A (M.parent i)) (B i) x)) f\n simpa only [selector_count_fiber, q, rawMass, counts] using h\n\ndef rawError (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) : \u211d :=\n \u2211 x : Raw M N, rawMass M N x *\n Obligations045.M0.fairLoss (\u2211 i, (counts M N A B x i : \u2115)) N\n\ndef binomialError (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) : \u211d :=\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*\n Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N\n\ntheorem conditional_error_bridge (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) :\n rawError M N A B = binomialError M N A B :=\n by\n simpa only [rawError, binomialError] using generator_to_binomial M N A B\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\n/-- Primitive jointly independent ancestor-selector, child-selector and fresh-vote bits.\nUnused primitive draws are retained in the world and summed out, not conditioned away. -/\nabbrev Primitive := Bool \u00d7 Bool \u00d7 Bool\ndef bernMass (r : \u211d) (b : Bool) : \u211d := if b then r else 1-r\ndef primitiveMass (p c1 c2 : \u211d) (t : Primitive) : \u211d :=\n bernMass c1 t.1 * bernMass c2 t.2.1 * bernMass p t.2.2\ndef primitiveBranch (t : Primitive) : Fin 4 :=\n if t.1 then 0 else if t.2.1 then 1 else if t.2.2 then 2 else 3\n\ntheorem primitive_branch_fiber (p c1 c2 : \u211d) (e : Fin 4) :\n (\u2211 t : Primitive, if primitiveBranch t = e then primitiveMass p c1 c2 t else 0) =\n branchMass p c1 c2 e := by\n fin_cases e <;>\n simp [Fintype.sum_prod_type, Fintype.sum_bool, primitiveBranch, primitiveMass, bernMass, branchMass] <;> ring\n\ntheorem primitive_normalized (p c1 c2 : \u211d) : \u2211 t : Primitive, primitiveMass p c1 c2 t = 1 := by\n simp [Fintype.sum_prod_type, Fintype.sum_bool, primitiveMass, bernMass]\n ring\n\ntheorem primitive_output_is_sequential (A B : Bool) (t : Primitive) :\n branchBit A B (primitiveBranch t) =\n if t.1 then A else if t.2.1 then B else t.2.2 := by\n rcases t with \u27e8u,v,f\u27e9\n cases u <;> cases v <;> cases f <;> rfl\n\ntheorem primitive_member_pushforward (p c1 c2 : \u211d) (n : \u2115)\n (f : (Fin n \u2192 Fin 4) \u2192 \u211d) :\n (\u2211 t : Fin n \u2192 Primitive, (\u220f j, primitiveMass p c1 c2 (t j))*\n f (fun j => primitiveBranch (t j))) =\n \u2211 x : Fin n \u2192 Fin 4, (\u220f j, branchMass p c1 c2 (x j))*f x := by\n simpa only [primitive_branch_fiber] using product_pushforward\n (fun (_j : Fin n) t => primitiveMass p c1 c2 t) (fun _ => primitiveBranch) f\n\ntheorem primitive_count_fiber (p c1 c2 : \u211d) (A B : Bool) (n : \u2115) (k : Fin (n+1)) :\n (\u2211 t : Fin n \u2192 Primitive,\n if count (memberSubset A B (fun j => primitiveBranch (t j))) = k\n then \u220f j, primitiveMass p c1 c2 (t j) else 0) =\n binMass (success p c1 c2 A B) n k := by\n have h := primitive_member_pushforward p c1 c2 n\n (fun x => if count (memberSubset A B x) = k then 1 else 0)\n simpa only [mul_ite, mul_one, mul_zero, selector_count_fiber] using h\n\nabbrev PrimitiveWorld (M : Model) (N : \u2115) :=\n \u2200 i : Fin M.base.K, Fin (sizes M N i) \u2192 Primitive\ndef primitiveJointMass (M : Model) (N : \u2115) (x : PrimitiveWorld M N) : \u211d :=\n \u220f i, \u220f j, primitiveMass M.base.p M.base.c M.c2 (x i j)\ndef primitiveCounts (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M)\n (x : PrimitiveWorld M N) :=\n fun i => count (memberSubset (A (M.parent i)) (B i) (fun j => primitiveBranch (x i j)))\n\n/-- The main bridge begins with the THREE INDEPENDENT PRIMITIVE BITS per named member,\nnot assumed Bernoulli output bits or an assumed binomial count distribution. -/\ntheorem primitive_generator_to_binomial (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M)\n (f : (\u2200 i : Fin M.base.K, Fin (sizes M N i+1)) \u2192 \u211d) :\n (\u2211 x : PrimitiveWorld M N, primitiveJointMass M N x*f (primitiveCounts M N A B x)) =\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*f k := by\n have h := product_pushforward\n (fun i (x : Fin (sizes M N i) \u2192 Primitive) => \u220f j, primitiveMass M.base.p M.base.c M.c2 (x j))\n (fun i x => count (memberSubset (A (M.parent i)) (B i) (fun j => primitiveBranch (x j)))) f\n simpa only [primitive_count_fiber, primitiveJointMass, primitiveCounts, q] using h\n\ntheorem bern_nonneg (r : \u211d) (hr : 0 \u2264 r) (hr1 : r \u2264 1) (b : Bool) :\n 0 \u2264 bernMass r b := by\n cases b <;> simp only [bernMass, Bool.false_eq_true, ite_false, ite_true]\n \u00b7 exact sub_nonneg.mpr hr1\n \u00b7 exact hr\n\ntheorem primitive_joint_nonneg (M : Model) (N : \u2115) (x : PrimitiveWorld M N) :\n 0 \u2264 primitiveJointMass M N x := by\n apply Finset.prod_nonneg\n intro i _\n apply Finset.prod_nonneg\n intro j _\n exact mul_nonneg\n (mul_nonneg (bern_nonneg _ M.base.c_nonneg M.base.c_lt_one.le _)\n (bern_nonneg _ M.c2_nonneg M.c2_lt_one.le _))\n (bern_nonneg _ (by linarith [M.base.p_half]) M.base.p_lt_one.le _)\n\ntheorem primitive_joint_normalized (M : Model) (N : \u2115) :\n \u2211 x : PrimitiveWorld M N, primitiveJointMass M N x = 1 := by\n calc\n _ = \u220f i : Fin M.base.K, \u2211 x : Fin (sizes M N i) \u2192 Primitive,\n \u220f j, primitiveMass M.base.p M.base.c M.c2 (x j) :=\n (Fintype.prod_sum (fun i (x : Fin (sizes M N i) \u2192 Primitive) =>\n \u220f j, primitiveMass M.base.p M.base.c M.c2 (x j))).symm\n _ = 1 := by\n apply Finset.prod_eq_one\n intro i _\n rw [\u2190 Fintype.prod_sum (fun (_j : Fin (sizes M N i)) t => primitiveMass M.base.p M.base.c M.c2 t)]\n simp only [primitive_normalized, Finset.prod_const_one]\n\ninstance primitiveMeasurableSpace (M : Model) (N : \u2115) :\n MeasurableSpace (PrimitiveWorld M N) := \u22a4\ninstance primitiveDiscreteMeasurable (M : Model) (N : \u2115) :\n DiscreteMeasurableSpace (PrimitiveWorld M N) := \u27e8fun _ => trivial\u27e9\n\n/-- Genuine finite PMF on independent primitive bits; no binomial premise. -/\ndef primitiveLaw (M : Model) (N : \u2115) : PMF (PrimitiveWorld M N) :=\n PMF.ofFintype (fun x => ENNReal.ofReal (primitiveJointMass M N x)) (by\n rw [\u2190 ENNReal.ofReal_sum_of_nonneg]\n \u00b7 simp [primitive_joint_normalized]\n \u00b7 intro x _\n exact primitive_joint_nonneg M N x)\n\ntheorem primitive_law_count_expectation (M : Model) (N : \u2115)\n (A : Ancestors M) (B : Leaves M)\n (f : (\u2200 i : Fin M.base.K, Fin (sizes M N i+1)) \u2192 \u211d) :\n (\u222b x, f (primitiveCounts M N A B x) \u2202(primitiveLaw M N).toMeasure) =\n \u2211 k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1),\n (\u220f i, binMass (q M A B i) (sizes M N i) (k i))*f k := by\n rw [PMF.integral_eq_sum]\n calc\n _ = \u2211 x : PrimitiveWorld M N,\n primitiveJointMass M N x*f (primitiveCounts M N A B x) := by\n apply Finset.sum_congr rfl\n intro x _\n simp only [primitiveLaw, PMF.ofFintype_apply, smul_eq_mul]\n rw [ENNReal.toReal_ofReal (primitive_joint_nonneg M N x)]\n _ = _ := primitive_generator_to_binomial M N A B f\n\ntheorem primitive_law_count_probability (M : Model) (N : \u2115)\n (A : Ancestors M) (B : Leaves M) (k : \u2200 i : Fin M.base.K, Fin (sizes M N i+1)) :\n (\u222b x, if primitiveCounts M N A B x = k then (1:\u211d) else 0\n \u2202(primitiveLaw M N).toMeasure) = \u220f i, binMass (q M A B i) (sizes M N i) (k i) := by\n simpa using primitive_law_count_expectation M N A B (fun z => if z = k then (1:\u211d) else 0)\n\ntheorem primitive_law_error_bridge (M : Model) (N : \u2115) (A : Ancestors M) (B : Leaves M) :\n (\u222b x, Obligations045.M0.fairLoss (\u2211 i, (primitiveCounts M N A B x i : \u2115)) N\n \u2202(primitiveLaw M N).toMeasure) = binomialError M N A B :=\n by\n simpa only [binomialError] using primitive_law_count_expectation M N A B\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\ndef latentMass (M : Model) (A : Ancestors M) (B : Leaves M) : \u211d :=\n (\u220f g, bernMass M.base.p (A g))*(\u220f i, bernMass M.base.p (B i))\n\ntheorem latent_normalized (M : Model) :\n \u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B = 1 := by\n have ha : (\u2211 A : Ancestors M, \u220f g, bernMass M.base.p (A g)) = 1 := by\n rw [\u2190 Fintype.prod_sum]\n simp [Fintype.sum_bool, bernMass]\n have hb : (\u2211 B : Leaves M, \u220f i, bernMass M.base.p (B i)) = 1 := by\n rw [\u2190 Fintype.prod_sum]\n simp [Fintype.sum_bool, bernMass]\n simp only [latentMass, \u2190 Finset.mul_sum, hb, mul_one, ha]\n\ntheorem mixture_error_bridge (M : Model) (N : \u2115) :\n (\u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B *\n \u222b x, Obligations045.M0.fairLoss (\u2211 i, (primitiveCounts M N A B x i : \u2115)) N\n \u2202(primitiveLaw M N).toMeasure) =\n \u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B * binomialError M N A B := by\n simp only [primitive_law_error_bridge]\n\n/-- Pure algebraic reduction only; no new limit or uncertainty certificate. -/\ntheorem zero_ancestor_reduction (M : Model) (A : Ancestors M) (B : Leaves M)\n (hc : M.base.c = 0) (i : Fin M.base.K) :\n q M A B i = (1-M.c2)*M.base.p + if B i then M.c2 else 0 := by\n cases h : B i <;> simp [q, success, hc, h, add_comm]\n\ntheorem latent_nonneg (M : Model) (A : Ancestors M) (B : Leaves M) :\n 0 \u2264 latentMass M A B := by\n apply mul_nonneg <;> apply Finset.prod_nonneg <;> intro i _ <;>\n exact bern_nonneg _ (by linarith [M.base.p_half]) M.base.p_lt_one.le _\n\nabbrev FullWorld (M : Model) (N : \u2115) := (Ancestors M \u00d7 Leaves M) \u00d7 PrimitiveWorld M N\ndef fullMass (M : Model) (N : \u2115) (x : FullWorld M N) : \u211d :=\n latentMass M x.1.1 x.1.2 * primitiveJointMass M N x.2\n\ntheorem fullMass_nonneg (M : Model) (N : \u2115) (x : FullWorld M N) : 0 \u2264 fullMass M N x :=\n mul_nonneg (latent_nonneg M _ _) (primitive_joint_nonneg M N _)\n\ntheorem fullMass_normalized (M : Model) (N : \u2115) : \u2211 x : FullWorld M N, fullMass M N x = 1 := by\n simp only [Fintype.sum_prod_type, fullMass, \u2190 Finset.mul_sum,\n primitive_joint_normalized, mul_one, latent_normalized]\n\ninstance fullMeasurableSpace (M : Model) (N : \u2115) : MeasurableSpace (FullWorld M N) := \u22a4\ninstance fullDiscreteMeasurable (M : Model) (N : \u2115) :\n DiscreteMeasurableSpace (FullWorld M N) := \u27e8fun _ => trivial\u27e9\n\n/-- The COMPLETE finite generative law includes jointly independent latent bits\nand all independent selector/fresh primitive draws. -/\ndef fullLaw (M : Model) (N : \u2115) : PMF (FullWorld M N) :=\n PMF.ofFintype (fun x => ENNReal.ofReal (fullMass M N x)) (by\n rw [\u2190 ENNReal.ofReal_sum_of_nonneg]\n \u00b7 simp [fullMass_normalized]\n \u00b7 intro x _\n exact fullMass_nonneg M N x)\n\ndef implementationError (M : Model) (N : \u2115) : \u211d :=\n \u2211 A : Ancestors M, \u2211 B : Leaves M, latentMass M A B * binomialError M N A B\n\n/-- Complete generator\u2013implementation bridge for every finiteN. No count distribution,\nerror convergence, causal identification or oracle-free calibration is assumed. -/\ntheorem full_generator_error_bridge (M : Model) (N : \u2115) :\n (\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 implementationError M N := by\n rw [PMF.integral_eq_sum]\n have hp (x : FullWorld M N) : ((fullLaw M N) x).toReal = fullMass M N x := by\n simp only [fullLaw, PMF.ofFintype_apply]\n exact ENNReal.toReal_ofReal (fullMass_nonneg M N x)\n simp_rw [smul_eq_mul, hp]\n simp only [Fintype.sum_prod_type, implementationError, fullMass, mul_assoc]\n apply Finset.sum_congr rfl\n intro A _\n apply Finset.sum_congr rfl\n intro B _\n rw [\u2190 Finset.mul_sum]\n congr 1\n simpa only [binomialError] using primitive_generator_to_binomial M N A B\n (fun k => Obligations045.M0.fairLoss (\u2211 i, (k i : \u2115)) N)\n\nend Obligations046.M1Bridge\n\nopen Obligations046.M1Bridge\nexample : branchMass (2/3) (1/2) (1/2) 0 * branchMass (2/3) (1/2) (1/2) 0 = (1/2:\u211d) := by norm_num [success, branchMass]\n",
|
|
155
|
+
"exitCode": 1,
|
|
156
|
+
"cause": [
|
|
157
|
+
"unsolved goals"
|
|
158
|
+
]
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
{
|
|
2
|
+
"archiveApproval": false,
|
|
3
|
+
"candidatePublicationCorrectionCovered": false,
|
|
4
|
+
"captures": [
|
|
5
|
+
{
|
|
6
|
+
"elapsedMs": 154.70891700000004,
|
|
7
|
+
"expected": "fact",
|
|
8
|
+
"name": "orchard-projection",
|
|
9
|
+
"passed": true,
|
|
10
|
+
"requestSHA256": "sha256:ffaabefb7b80eca37f2379c2567f31574a682e9ab4e538e59f4e0a2483fdac47",
|
|
11
|
+
"result": {
|
|
12
|
+
"kind": "fact",
|
|
13
|
+
"lines": [
|
|
14
|
+
"bound-lock/1 at=receipt:1 form=alphabet measure=reads role=reads scope=publication/evidence/m1-generator-binomial value=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-subcauses.json|contracts/m1-generator-binomial.json|samples/laws/m1-generator-binomial/yes/sample.json|samples/laws/m1-generator-binomial/no/sample.json|vectors/laws/policy.json"
|
|
15
|
+
],
|
|
16
|
+
"protocol": "bound-lock/1"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
{
|
|
20
|
+
"elapsedMs": 18715.492125,
|
|
21
|
+
"expected": "fact",
|
|
22
|
+
"name": "orchard-read",
|
|
23
|
+
"passed": true,
|
|
24
|
+
"requestSHA256": "sha256:045c54b5e835faadebc1f24bdc910854a809c728b9d027d9a5c063ac97b44225",
|
|
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-generator-binomial"
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
"bound": {
|
|
39
|
+
"kind": "enumerated",
|
|
40
|
+
"values": [
|
|
41
|
+
"sha256:0e12cd99729a0fd845942f252bce19cb792b1ccf93da52e9c9b505c006c5a55a"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"measure": "digest",
|
|
45
|
+
"role": "writes",
|
|
46
|
+
"scope": "publication/evidence/m1-generator-binomial/verification"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"kind": "fact",
|
|
50
|
+
"protocol": "bound-lock/1"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"elapsedMs": 175.34216699999888,
|
|
55
|
+
"expected": "refuse",
|
|
56
|
+
"name": "orchard-missing-input",
|
|
57
|
+
"passed": true,
|
|
58
|
+
"requestSHA256": "sha256:8066fab3d88b690a2e7cd3a2ff79bb8e4bded84411b4966e04e7acdd222dba3d",
|
|
59
|
+
"result": {
|
|
60
|
+
"kind": "refuse",
|
|
61
|
+
"protocol": "bound-lock/1",
|
|
62
|
+
"why": "Error: REFUSE\u00b7semilattice missing-input proofs/m1-046-bridge/M1Bridge046.lean"
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"elapsedMs": 154.9879170000022,
|
|
67
|
+
"expected": "refuse",
|
|
68
|
+
"name": "orchard-handed-source-differs",
|
|
69
|
+
"passed": true,
|
|
70
|
+
"requestSHA256": "sha256:14105c042af91228454b839a810bede3f3d053a0ddc7448fd4a36f0178e2df6a",
|
|
71
|
+
"result": {
|
|
72
|
+
"kind": "refuse",
|
|
73
|
+
"protocol": "bound-lock/1",
|
|
74
|
+
"why": "Error: REFUSE\u00b7semilattice fixture-source-differs proofs/m1-046-bridge/M1Bridge046.lean"
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"elapsedMs": 157.64770800000042,
|
|
79
|
+
"expected": "refuse",
|
|
80
|
+
"name": "orchard-overstated-M1",
|
|
81
|
+
"passed": true,
|
|
82
|
+
"requestSHA256": "sha256:a29bf60bb51385a6a797f2f2d619ac1e3c6e6bc6f5f1cd364a369f9811d614b1",
|
|
83
|
+
"result": {
|
|
84
|
+
"kind": "refuse",
|
|
85
|
+
"protocol": "bound-lock/1",
|
|
86
|
+
"why": "Error: REFUSE\u00b7semilattice overstated-M1"
|
|
87
|
+
}
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"elapsedMs": 184.67229099999895,
|
|
91
|
+
"expected": "fact",
|
|
92
|
+
"name": "catalog-projection",
|
|
93
|
+
"passed": true,
|
|
94
|
+
"requestSHA256": "sha256:ffaabefb7b80eca37f2379c2567f31574a682e9ab4e538e59f4e0a2483fdac47",
|
|
95
|
+
"result": {
|
|
96
|
+
"kind": "fact",
|
|
97
|
+
"lines": [
|
|
98
|
+
"bound-lock/1 at=receipt:1 form=alphabet measure=reads role=reads scope=publication/evidence/m1-generator-binomial value=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-subcauses.json|contracts/m1-generator-binomial.json|samples/laws/m1-generator-binomial/yes/sample.json|samples/laws/m1-generator-binomial/no/sample.json|vectors/laws/policy.json"
|
|
99
|
+
],
|
|
100
|
+
"protocol": "bound-lock/1"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"elapsedMs": 16733.765333,
|
|
105
|
+
"expected": "fact",
|
|
106
|
+
"name": "catalog-read",
|
|
107
|
+
"passed": true,
|
|
108
|
+
"requestSHA256": "sha256:045c54b5e835faadebc1f24bdc910854a809c728b9d027d9a5c063ac97b44225",
|
|
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-generator-binomial"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"bound": {
|
|
123
|
+
"kind": "enumerated",
|
|
124
|
+
"values": [
|
|
125
|
+
"sha256:0e12cd99729a0fd845942f252bce19cb792b1ccf93da52e9c9b505c006c5a55a"
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
"measure": "digest",
|
|
129
|
+
"role": "writes",
|
|
130
|
+
"scope": "publication/evidence/m1-generator-binomial/verification"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"kind": "fact",
|
|
134
|
+
"protocol": "bound-lock/1"
|
|
135
|
+
}
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"elapsedMs": 189.97716600000422,
|
|
139
|
+
"expected": "refuse",
|
|
140
|
+
"name": "catalog-missing-input",
|
|
141
|
+
"passed": true,
|
|
142
|
+
"requestSHA256": "sha256:8066fab3d88b690a2e7cd3a2ff79bb8e4bded84411b4966e04e7acdd222dba3d",
|
|
143
|
+
"result": {
|
|
144
|
+
"kind": "refuse",
|
|
145
|
+
"protocol": "bound-lock/1",
|
|
146
|
+
"why": "Error: REFUSE\u00b7semilattice missing-input proofs/m1-046-bridge/M1Bridge046.lean"
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"elapsedMs": 184.8552090000012,
|
|
151
|
+
"expected": "refuse",
|
|
152
|
+
"name": "catalog-handed-source-differs",
|
|
153
|
+
"passed": true,
|
|
154
|
+
"requestSHA256": "sha256:14105c042af91228454b839a810bede3f3d053a0ddc7448fd4a36f0178e2df6a",
|
|
155
|
+
"result": {
|
|
156
|
+
"kind": "refuse",
|
|
157
|
+
"protocol": "bound-lock/1",
|
|
158
|
+
"why": "Error: REFUSE\u00b7semilattice fixture-source-differs proofs/m1-046-bridge/M1Bridge046.lean"
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"elapsedMs": 182.30975000000035,
|
|
163
|
+
"expected": "refuse",
|
|
164
|
+
"name": "catalog-overstated-M1",
|
|
165
|
+
"passed": true,
|
|
166
|
+
"requestSHA256": "sha256:a29bf60bb51385a6a797f2f2d619ac1e3c6e6bc6f5f1cd364a369f9811d614b1",
|
|
167
|
+
"result": {
|
|
168
|
+
"kind": "refuse",
|
|
169
|
+
"protocol": "bound-lock/1",
|
|
170
|
+
"why": "Error: REFUSE\u00b7semilattice overstated-M1"
|
|
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-bridge/M0Bridge.lean",
|
|
182
|
+
"sha256": "sha256:b438b2961b93c62787275e158a90b534a400de8646a0552b099863fa5227c21e"
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"bytes": 17502,
|
|
186
|
+
"path": "proofs/m1-046-bridge/M1Bridge046.lean",
|
|
187
|
+
"sha256": "sha256:a21ac1dedb07af4f28752238edd564293967d8177b75979feead44f01f347b9c"
|
|
188
|
+
},
|
|
189
|
+
{
|
|
190
|
+
"bytes": 5762,
|
|
191
|
+
"path": "proofs/m1-046-bridge/Obligations045/M0Limit.lean",
|
|
192
|
+
"sha256": "sha256:aedc88b8ba4edf884cacec78da82eef29187ded0199d44674466425af1585b8c"
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
"bytes": 8801,
|
|
196
|
+
"path": "proofs/m1-046-bridge/Obligations045/M0Offdiag.lean",
|
|
197
|
+
"sha256": "sha256:af8a95d00cd0956acaec06deeebe7156dccf156b698408275c3e710f58c1c1e8"
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"bytes": 3526,
|
|
201
|
+
"path": "proofs/m1-046-bridge/lake-manifest.json",
|
|
202
|
+
"sha256": "sha256:fc8b4ba4b08bbcadf736bc8bcf803b5fdedfebafb57dec61ce0106e99964285d"
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"bytes": 513,
|
|
206
|
+
"path": "proofs/m1-046-bridge/lakefile.toml",
|
|
207
|
+
"sha256": "sha256:8a10d2a45af4798c40a903cedc12a03634851fc683c4557fe6711de297b3dc42"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"bytes": 25,
|
|
211
|
+
"path": "proofs/m1-046-bridge/lean-toolchain",
|
|
212
|
+
"sha256": "sha256:55e97be96000b5e9e290c9e74482e5e317861499a5540353ce845471bded8cea"
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"bytes": 62159,
|
|
216
|
+
"path": "vectors/laws/m1-generator-binomial.lean.json",
|
|
217
|
+
"sha256": "sha256:f66a742aef32b80c1258a1147d37f305cd29afdf045426bed1438ae215be1da3"
|
|
218
|
+
},
|
|
219
|
+
{
|
|
220
|
+
"bytes": 6036,
|
|
221
|
+
"path": "contracts/m1-subcauses.json",
|
|
222
|
+
"sha256": "sha256:8213a6cc3a5ca80a6adb594b9d8f28504c9566200a6d585f675585db2c8d45cc"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"bytes": 2490,
|
|
226
|
+
"path": "contracts/m1-generator-binomial.json",
|
|
227
|
+
"sha256": "sha256:83f87903740a1c804d311700a229abf1f2f6a0c7ab1b8378d831dae77337f760"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"bytes": 5440,
|
|
231
|
+
"path": "samples/laws/m1-generator-binomial/yes/sample.json",
|
|
232
|
+
"sha256": "sha256:6995cc280bd1fdec157eff9e08eebbddb1c15f328235e4937c2d693cf4648088"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"bytes": 710,
|
|
236
|
+
"path": "samples/laws/m1-generator-binomial/no/sample.json",
|
|
237
|
+
"sha256": "sha256:365a933ff20e6736f0d5742608cdc4b7f49d4d12135d8f2be3b4a1aebc1d749e"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"bytes": 2761,
|
|
241
|
+
"path": "vectors/laws/policy.json",
|
|
242
|
+
"sha256": "sha256:e941ce8cd86f0ec31621fa6b4deef9685dc1fead283f4b2fe22a8a58e3d5d939"
|
|
243
|
+
}
|
|
244
|
+
]
|
|
245
|
+
}
|