@lapxo/obligations 0.4.3 → 0.4.4

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 (51) hide show
  1. package/README.md +4 -0
  2. package/TARGET.bound +52 -9
  3. package/dist/measures/cofailure-pairs.d.ts +113 -0
  4. package/dist/measures/cofailure-pairs.js +129 -0
  5. package/dist/measures/index.d.ts +4 -0
  6. package/dist/measures/index.js +2 -0
  7. package/dist/measures/marginal-information.d.ts +78 -0
  8. package/dist/measures/marginal-information.js +71 -0
  9. package/docs/measures.md +16 -0
  10. package/docs/paper.md +2 -2
  11. package/docs/reference.md +6 -1
  12. package/package.json +1 -1
  13. package/proofs/cofailure-pairs.json +26 -0
  14. package/proofs/coordination.json +27 -0
  15. package/proofs/helly-comb.json +17 -0
  16. package/proofs/lean/Obligations/Cell.lean +159 -0
  17. package/proofs/lean/Obligations/HellyComb.lean +19 -0
  18. package/proofs/lineage-ceiling.json +41 -0
  19. package/proofs/marginal-information.json +30 -0
  20. package/proofs/resolution-encounters.json +23 -0
  21. package/receipts.bound +505 -288
  22. package/samples/laws/cofailure-pairs/no/sample.json +1 -0
  23. package/samples/laws/cofailure-pairs/yes/sample.json +20 -0
  24. package/samples/laws/linage-rest/no/sample.json +19 -0
  25. package/samples/laws/linage-rest/yes/sample.json +100 -0
  26. package/samples/laws/lineage-ceiling/no/sample.json +8 -0
  27. package/samples/laws/lineage-ceiling/yes/sample.json +30 -0
  28. package/samples/laws/marginal-information/no/sample.json +17 -0
  29. package/samples/laws/marginal-information/yes/sample.json +459 -0
  30. package/samples/laws/semilattice/no/sample.json +18 -0
  31. package/samples/laws/semilattice/yes/sample.json +29 -0
  32. package/samples/no/H1-uncertainty.json +24 -0
  33. package/samples/no/installed-artifact.json +24 -26
  34. package/samples/yes/H1-uncertainty.json +25 -0
  35. package/samples/yes/installed-artifact.json +23 -25
  36. package/vectors/laws/cofailure-pairs.json +2580 -0
  37. package/vectors/laws/cofailure-pairs.native.json +267 -0
  38. package/vectors/laws/coordination.json +386 -0
  39. package/vectors/laws/f1/finite-arithmetic.json +66 -0
  40. package/vectors/laws/f1/path-witness.json +242 -0
  41. package/vectors/laws/helly-comb.json +95 -0
  42. package/vectors/laws/helly-comb.lean.json +94 -0
  43. package/vectors/laws/linage-rest.native.json +335 -0
  44. package/vectors/laws/lineage-ceiling.json +790 -0
  45. package/vectors/laws/lineage-ceiling.native.json +291 -0
  46. package/vectors/laws/marginal-information.json +868 -0
  47. package/vectors/laws/marginal-information.native.json +259 -0
  48. package/vectors/laws/meet-semilattice.json +244 -0
  49. package/vectors/laws/meet-semilattice.native.json +265 -0
  50. package/vectors/laws/resolution-encounters.json +171 -0
  51. package/vectors/measures/installed-artifact.cli.json +8 -12
@@ -0,0 +1 @@
1
+ {"name":"conflicting-value-for-one-event-origin","mutation":{"event":"e0","origin":"a","value":"0"},"expectedRefusal":"REFUSE·cofailure conflicting-value e0/a"}
@@ -0,0 +1,20 @@
1
+ {
2
+ "id":"cofailure-pairs-models@1",
3
+ "origins":["a","b","c","d"],"values":["0","1"],"budget":"100000",
4
+ "handedCategoricalReference":{"model":"independent-categorical@1","marginals":[
5
+ {"origin":"a","probabilities":[{"value":"0","p":"1/2"},{"value":"1","p":"1/2"}]},
6
+ {"origin":"b","probabilities":[{"value":"0","p":"1/2"},{"value":"1","p":"1/2"}]},
7
+ {"origin":"c","probabilities":[{"value":"0","p":"1/2"},{"value":"1","p":"1/2"}]},
8
+ {"origin":"d","probabilities":[{"value":"0","p":"1/2"},{"value":"1","p":"1/2"}]}
9
+ ]},
10
+ "separated":{"T":400,"blocks":[{"count":200,"values":["1","1","0","0"],"truth":"0"},{"count":200,"values":["0","0","1","1"],"truth":"0"}],
11
+ "oracleTheta":"1/4","oracleEpsilon":"1/8","observationalTheta":"0","observationalEpsilon":"1/4","referenceGroups":[["a","b"],["c","d"]]},
12
+ "sameReportsOtherTruth":{"truthFromOrigin":"a","meaning":"same value bytes; the oracle changes which answers count as wrong"},
13
+ "sharedQuestion":{"T":400,"blocks":[{"count":200,"values":["0","0","0","0"],"truth":"0"},{"count":200,"values":["1","1","1","1"],"truth":"1"}],
14
+ "meaning":"perfect responses to a varying common question; zero errors do not make marginal categorical reference adequate"},
15
+ "betweenMeans":{"T":100,"theta":"3/20","blocks":[{"count":59,"values":["1","1","0","0"],"truth":"0"},{"count":21,"values":["1","1","1","0"],"truth":"0"},{"count":20,"values":["0","0","1","1"],"truth":"0"}],"referenceGroups":[["a","b"],["c","d"]]},
16
+ "finiteConfusion":{"T":4,"c":"1/4","e":"1/4","theta":"1/4","epsilon":"1/8","blocks":[{"count":4,"values":["0","0","0","0"],"truth":"0"}],
17
+ "declaredGenerator":"factor covering a,b fires with c, otherwise private Bernoulli errors e; c=e=1/4; independent cells and private draws declared; binary wrong symbol is 1",
18
+ "allCorrectPerCell":"(1-c)*(1-e)^4", "meaning":"a nonzero-probability all-correct batch cannot recover the hidden group even when c=e"},
19
+ "fixtureProvenance":"new deterministic finite fixtures, not recovered browser outputs; iid sampling is an external conditional premise, not inferred from the fixture"
20
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "cases": [
3
+ {
4
+ "region": "helly-comb",
5
+ "claim": "pairwise-implies-global",
6
+ "expectedRefusal": "REFUSE·linage-rest comb-pairwise-is-not-global"
7
+ },
8
+ {
9
+ "region": "resolution-encounters",
10
+ "claim": "unconditional-monotone-K-N",
11
+ "expectedRefusal": "REFUSE·linage-rest resolution-counting-model-required"
12
+ },
13
+ {
14
+ "region": "coordination",
15
+ "claim": "curve-without-joint-model",
16
+ "expectedRefusal": "REFUSE·linage-rest joint-conditional-independence-required"
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,100 @@
1
+ {
2
+ "id": "linage-rest@1",
3
+ "helly": {
4
+ "universe": [
5
+ 0,
6
+ 1,
7
+ 2
8
+ ],
9
+ "sets": [
10
+ [
11
+ 0,
12
+ 1
13
+ ],
14
+ [
15
+ 1,
16
+ 2
17
+ ],
18
+ [
19
+ 0,
20
+ 2
21
+ ]
22
+ ]
23
+ },
24
+ "resolution": {
25
+ "publishedSample": "samples/yes/H1-uncertainty.json",
26
+ "resolutions": [
27
+ 1,
28
+ 2,
29
+ 3,
30
+ 4,
31
+ 5,
32
+ 7
33
+ ],
34
+ "encounters": [
35
+ "4.8",
36
+ "5.74",
37
+ "5.2",
38
+ "5.86",
39
+ "5.19",
40
+ "6.04"
41
+ ],
42
+ "countertables": [
43
+ {
44
+ "r": [
45
+ 1,
46
+ 2
47
+ ],
48
+ "e": [
49
+ "4",
50
+ "1"
51
+ ],
52
+ "K": "1",
53
+ "N": "8"
54
+ },
55
+ {
56
+ "r": [
57
+ 1,
58
+ 2,
59
+ 4
60
+ ],
61
+ "e": [
62
+ "2",
63
+ "2",
64
+ "2"
65
+ ],
66
+ "K": "3",
67
+ "N": "5"
68
+ }
69
+ ]
70
+ },
71
+ "coordination": {
72
+ "n": 5,
73
+ "f": "1/4",
74
+ "e": "1/5",
75
+ "sizes": [
76
+ 1,
77
+ 2,
78
+ 3,
79
+ 4,
80
+ 5,
81
+ 6
82
+ ],
83
+ "privateJoint": "conditionally-iid-given-truth",
84
+ "active": "all-selected-sources-same-wrong-label",
85
+ "fittingPolicy": {
86
+ "procedure": "exact-c-slices-on-declared-p-grid@1",
87
+ "p": [
88
+ "1/5"
89
+ ],
90
+ "tolerance": "0",
91
+ "budget": "1000000",
92
+ "bootstrap": {
93
+ "B": 0,
94
+ "seed": 7,
95
+ "prng": "xorshift32",
96
+ "randomWords": 0
97
+ }
98
+ }
99
+ }
100
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "name":"missing-markov-bottleneck",
3
+ "model":"single-dominant-factor@1",
4
+ "n":2,"c":"1/2","p":"1/10","k":1,
5
+ "falseClaim":"capacityP0 is an upper bound without the declared symmetric Markov bottleneck",
6
+ "expectedRefusal":"REFUSE·lineage markov-model-required",
7
+ "meaning":"The published general model gives positive information while capacityP0 is zero. The API remains unchanged; this claim is outside the new conditional contract."
8
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "model": "truth->symmetric-lineage->reports->aggregate@1",
3
+ "conditions": {
4
+ "truth": "uniform on n named symbols",
5
+ "lineageChannel": "P(Z=x|X=x)=1-c; P(Z=z|X=x)=c/(n-1) for z!=x",
6
+ "markov": "X -> Z -> (Y_1,...,Y_K) -> A",
7
+ "extraTruthAccess": false,
8
+ "revealedCauseIndicator": false
9
+ },
10
+ "policy": {"logarithm":"binary64-log2","budget":"100000"},
11
+ "copies": [
12
+ {"n":2,"c":"0","ks":[1,3]},
13
+ {"n":2,"c":"1/2","ks":[1,3]},
14
+ {"n":2,"c":"1","ks":[1,3]},
15
+ {"n":3,"c":"1/5","ks":[1,2,3]},
16
+ {"n":4,"c":"3/4","ks":[1,2]}
17
+ ],
18
+ "finiteApproachExperiment": {
19
+ "classification": "new exact finite experiment, not recovered browser bytes or an asymptotic certificate",
20
+ "reportsGivenZ": "jointly independent n-ary symmetric channels with error e",
21
+ "aggregator": "plurality-uniform-ties@1",
22
+ "regimes": [
23
+ {"n":2,"c":"1/5","e":"1/5","ks":[1,3,5,7,9]},
24
+ {"n":3,"c":"1/4","e":"1/5","ks":[1,3,5]},
25
+ {"n":4,"c":"1/5","e":"1/4","ks":[1,3]}
26
+ ],
27
+ "limitHypothesis": "a fixed n,c,e, conditionally iid reports and e<1/2 suffice for plurality to recover Z with probability tending to one; finite rows alone do not verify that limit"
28
+ },
29
+ "f1Witness": {"N":4,"x":[[0],[1,2],[3]],"y":[[0,1],[2,3]],"uniformLiftN":16}
30
+ }
@@ -0,0 +1,17 @@
1
+ {
2
+ "name": "duplicate-source-in-addition-order",
3
+ "case": "copy-versus-new-channel",
4
+ "orders": [
5
+ [
6
+ "a",
7
+ "a",
8
+ "b"
9
+ ],
10
+ [
11
+ "b",
12
+ "a",
13
+ "copy"
14
+ ]
15
+ ],
16
+ "expectedRefusal": "REFUSE\u00b7marginal order-must-be-permutation"
17
+ }
@@ -0,0 +1,459 @@
1
+ {
2
+ "id": "marginal-information-models@1",
3
+ "policy": {
4
+ "logarithm": "binary64-log2",
5
+ "budget": "100000"
6
+ },
7
+ "cases": [
8
+ {
9
+ "id": "copy-versus-new-channel",
10
+ "classification": "declared joint model, not inferred independence",
11
+ "generation": "uniform binary truth; a is BSC(1/4), copy is exactly a; b is a separate BSC(1/4); the two noise bits are jointly independent given truth by this declared joint table",
12
+ "model": {
13
+ "model": "finite-declared-joint@1",
14
+ "truthValues": [
15
+ "0",
16
+ "1"
17
+ ],
18
+ "sources": [
19
+ {
20
+ "id": "a",
21
+ "lineage": "L1",
22
+ "values": [
23
+ "0",
24
+ "1"
25
+ ]
26
+ },
27
+ {
28
+ "id": "copy",
29
+ "lineage": "L1",
30
+ "values": [
31
+ "0",
32
+ "1"
33
+ ]
34
+ },
35
+ {
36
+ "id": "b",
37
+ "lineage": "L2",
38
+ "values": [
39
+ "0",
40
+ "1"
41
+ ]
42
+ }
43
+ ],
44
+ "atoms": [
45
+ {
46
+ "id": "0",
47
+ "truth": "0",
48
+ "values": {
49
+ "a": "0",
50
+ "copy": "0",
51
+ "b": "0"
52
+ },
53
+ "p": "9/32"
54
+ },
55
+ {
56
+ "id": "1",
57
+ "truth": "0",
58
+ "values": {
59
+ "a": "0",
60
+ "copy": "0",
61
+ "b": "1"
62
+ },
63
+ "p": "3/32"
64
+ },
65
+ {
66
+ "id": "2",
67
+ "truth": "0",
68
+ "values": {
69
+ "a": "1",
70
+ "copy": "1",
71
+ "b": "0"
72
+ },
73
+ "p": "3/32"
74
+ },
75
+ {
76
+ "id": "3",
77
+ "truth": "0",
78
+ "values": {
79
+ "a": "1",
80
+ "copy": "1",
81
+ "b": "1"
82
+ },
83
+ "p": "1/32"
84
+ },
85
+ {
86
+ "id": "4",
87
+ "truth": "1",
88
+ "values": {
89
+ "a": "1",
90
+ "copy": "1",
91
+ "b": "1"
92
+ },
93
+ "p": "9/32"
94
+ },
95
+ {
96
+ "id": "5",
97
+ "truth": "1",
98
+ "values": {
99
+ "a": "1",
100
+ "copy": "1",
101
+ "b": "0"
102
+ },
103
+ "p": "3/32"
104
+ },
105
+ {
106
+ "id": "6",
107
+ "truth": "1",
108
+ "values": {
109
+ "a": "0",
110
+ "copy": "0",
111
+ "b": "1"
112
+ },
113
+ "p": "3/32"
114
+ },
115
+ {
116
+ "id": "7",
117
+ "truth": "1",
118
+ "values": {
119
+ "a": "0",
120
+ "copy": "0",
121
+ "b": "0"
122
+ },
123
+ "p": "1/32"
124
+ }
125
+ ]
126
+ },
127
+ "orders": [
128
+ [
129
+ "a",
130
+ "copy",
131
+ "b"
132
+ ],
133
+ [
134
+ "b",
135
+ "a",
136
+ "copy"
137
+ ]
138
+ ],
139
+ "comparison": {
140
+ "previous": [
141
+ "a"
142
+ ],
143
+ "same": "copy",
144
+ "other": "b"
145
+ }
146
+ },
147
+ {
148
+ "id": "equal-quality-reverses-lineage-ranking",
149
+ "classification": "counterexample to universal ranking even at equal individual accuracy and information",
150
+ "generation": "uniform two-bit truth; L1 carries the full truth and supplies two different projections; L2 directly supplies the first-bit projection. All source predictions have accuracy 1/2 and individual information 1 bit. This is outside any additional hypothesis that all siblings are identical copies.",
151
+ "model": {
152
+ "model": "finite-declared-joint@1",
153
+ "truthValues": [
154
+ "00",
155
+ "01",
156
+ "10",
157
+ "11"
158
+ ],
159
+ "sources": [
160
+ {
161
+ "id": "a",
162
+ "lineage": "L1",
163
+ "values": [
164
+ "00",
165
+ "10"
166
+ ]
167
+ },
168
+ {
169
+ "id": "sibling",
170
+ "lineage": "L1",
171
+ "values": [
172
+ "00",
173
+ "01"
174
+ ]
175
+ },
176
+ {
177
+ "id": "b",
178
+ "lineage": "L2",
179
+ "values": [
180
+ "00",
181
+ "10"
182
+ ]
183
+ }
184
+ ],
185
+ "atoms": [
186
+ {
187
+ "id": "0",
188
+ "truth": "00",
189
+ "values": {
190
+ "a": "00",
191
+ "sibling": "00",
192
+ "b": "00"
193
+ },
194
+ "p": "1/4"
195
+ },
196
+ {
197
+ "id": "1",
198
+ "truth": "01",
199
+ "values": {
200
+ "a": "00",
201
+ "sibling": "01",
202
+ "b": "00"
203
+ },
204
+ "p": "1/4"
205
+ },
206
+ {
207
+ "id": "2",
208
+ "truth": "10",
209
+ "values": {
210
+ "a": "10",
211
+ "sibling": "00",
212
+ "b": "10"
213
+ },
214
+ "p": "1/4"
215
+ },
216
+ {
217
+ "id": "3",
218
+ "truth": "11",
219
+ "values": {
220
+ "a": "10",
221
+ "sibling": "01",
222
+ "b": "10"
223
+ },
224
+ "p": "1/4"
225
+ }
226
+ ]
227
+ },
228
+ "orders": [
229
+ [
230
+ "a",
231
+ "sibling",
232
+ "b"
233
+ ],
234
+ [
235
+ "a",
236
+ "b",
237
+ "sibling"
238
+ ]
239
+ ],
240
+ "comparison": {
241
+ "previous": [
242
+ "a"
243
+ ],
244
+ "same": "sibling",
245
+ "other": "b"
246
+ }
247
+ },
248
+ {
249
+ "id": "xor-synergy",
250
+ "classification": "counterexample to unconditional diminishing returns",
251
+ "generation": "truth and mask are jointly independent uniform bits; the two handed views are mask and truth XOR mask. The sources share the declared masking mechanism; no conditional independence of those views is claimed.",
252
+ "model": {
253
+ "model": "finite-declared-joint@1",
254
+ "truthValues": [
255
+ "0",
256
+ "1"
257
+ ],
258
+ "sources": [
259
+ {
260
+ "id": "mask",
261
+ "lineage": "Lmask",
262
+ "values": [
263
+ "0",
264
+ "1"
265
+ ]
266
+ },
267
+ {
268
+ "id": "masked",
269
+ "lineage": "Lmask",
270
+ "values": [
271
+ "0",
272
+ "1"
273
+ ]
274
+ }
275
+ ],
276
+ "atoms": [
277
+ {
278
+ "id": "0",
279
+ "truth": "0",
280
+ "values": {
281
+ "mask": "0",
282
+ "masked": "0"
283
+ },
284
+ "p": "1/4"
285
+ },
286
+ {
287
+ "id": "1",
288
+ "truth": "0",
289
+ "values": {
290
+ "mask": "1",
291
+ "masked": "1"
292
+ },
293
+ "p": "1/4"
294
+ },
295
+ {
296
+ "id": "2",
297
+ "truth": "1",
298
+ "values": {
299
+ "mask": "0",
300
+ "masked": "1"
301
+ },
302
+ "p": "1/4"
303
+ },
304
+ {
305
+ "id": "3",
306
+ "truth": "1",
307
+ "values": {
308
+ "mask": "1",
309
+ "masked": "0"
310
+ },
311
+ "p": "1/4"
312
+ }
313
+ ]
314
+ },
315
+ "orders": [
316
+ [
317
+ "mask",
318
+ "masked"
319
+ ],
320
+ [
321
+ "masked",
322
+ "mask"
323
+ ]
324
+ ]
325
+ },
326
+ {
327
+ "id": "saturated-truth",
328
+ "classification": "counterexample to strict gain from another lineage",
329
+ "generation": "both declared channels are noiseless; after either source, truth is known",
330
+ "model": {
331
+ "model": "finite-declared-joint@1",
332
+ "truthValues": [
333
+ "0",
334
+ "1"
335
+ ],
336
+ "sources": [
337
+ {
338
+ "id": "a",
339
+ "lineage": "L1",
340
+ "values": [
341
+ "0",
342
+ "1"
343
+ ]
344
+ },
345
+ {
346
+ "id": "b",
347
+ "lineage": "L2",
348
+ "values": [
349
+ "0",
350
+ "1"
351
+ ]
352
+ }
353
+ ],
354
+ "atoms": [
355
+ {
356
+ "id": "0",
357
+ "truth": "0",
358
+ "values": {
359
+ "a": "0",
360
+ "b": "0"
361
+ },
362
+ "p": "1/2"
363
+ },
364
+ {
365
+ "id": "1",
366
+ "truth": "1",
367
+ "values": {
368
+ "a": "1",
369
+ "b": "1"
370
+ },
371
+ "p": "1/2"
372
+ }
373
+ ]
374
+ },
375
+ "orders": [
376
+ [
377
+ "a",
378
+ "b"
379
+ ],
380
+ [
381
+ "b",
382
+ "a"
383
+ ]
384
+ ]
385
+ },
386
+ {
387
+ "id": "majority-is-not-the-joint-observation",
388
+ "classification": "counterexample to monotonic information after a lossy mix",
389
+ "generation": "a is perfect; zero1 and zero2 always output zero. Equal-weight majority with three reports is constant even though the joint tuple retains truth.",
390
+ "model": {
391
+ "model": "finite-declared-joint@1",
392
+ "truthValues": [
393
+ "0",
394
+ "1"
395
+ ],
396
+ "sources": [
397
+ {
398
+ "id": "a",
399
+ "lineage": "L1",
400
+ "values": [
401
+ "0",
402
+ "1"
403
+ ]
404
+ },
405
+ {
406
+ "id": "zero1",
407
+ "lineage": "Lzero",
408
+ "values": [
409
+ "0"
410
+ ]
411
+ },
412
+ {
413
+ "id": "zero2",
414
+ "lineage": "Lzero",
415
+ "values": [
416
+ "0"
417
+ ]
418
+ }
419
+ ],
420
+ "atoms": [
421
+ {
422
+ "id": "0",
423
+ "truth": "0",
424
+ "values": {
425
+ "a": "0",
426
+ "zero1": "0",
427
+ "zero2": "0"
428
+ },
429
+ "p": "1/2"
430
+ },
431
+ {
432
+ "id": "1",
433
+ "truth": "1",
434
+ "values": {
435
+ "a": "1",
436
+ "zero1": "0",
437
+ "zero2": "0"
438
+ },
439
+ "p": "1/2"
440
+ }
441
+ ]
442
+ },
443
+ "orders": [
444
+ [
445
+ "a",
446
+ "zero1",
447
+ "zero2"
448
+ ],
449
+ [
450
+ "zero1",
451
+ "zero2",
452
+ "a"
453
+ ]
454
+ ]
455
+ }
456
+ ],
457
+ "provenance": "new finite declared joint tables; no original browser bytes, empirical truth labels or lineage identification are claimed",
458
+ "identity": "both orders of a case use the identical model object and all its atoms; no resampling or refitting by prefix"
459
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "name": "raw-api-antisymmetry-counterclaim",
3
+ "a": {
4
+ "lo": 5,
5
+ "hi": 3
6
+ },
7
+ "b": {
8
+ "lo": 8,
9
+ "hi": 6
10
+ },
11
+ "fact": "published apiLeq holds both ways while endpoint pairs differ",
12
+ "falseClaim": "the published apiLeq is antisymmetric on raw Cell values",
13
+ "negativeInstrument": "Lean decide",
14
+ "negativeDeclaration": "raw_api_antisymmetry_counterclaim",
15
+ "expectedExit": 1,
16
+ "meaning": "refutes a wrong order identification, not the meet laws or the current algebra",
17
+ "boundRuntimeRefusalClaimed": false
18
+ }