@lapxo/obligations 0.4.3 → 0.4.5
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/CHANGELOG.md +10 -0
- package/README.md +4 -0
- package/TARGET.bound +90 -10
- package/contracts/m0-allocation.json +6 -0
- package/contracts/m0-finite-grid.json +6 -0
- package/contracts/m0-limit-diag.json +6 -0
- package/contracts/m0-limit-offdiag.json +6 -0
- package/contracts/m0-pair-coincidence.json +6 -0
- package/dist/measures/cofailure-pairs.d.ts +113 -0
- package/dist/measures/cofailure-pairs.js +129 -0
- package/dist/measures/index.d.ts +4 -0
- package/dist/measures/index.js +2 -0
- package/dist/measures/marginal-information.d.ts +78 -0
- package/dist/measures/marginal-information.js +71 -0
- package/docs/contracts/m0-allocation.md +1 -0
- package/docs/contracts/m0-finite-grid.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-pair-coincidence.md +1 -0
- package/docs/measures.md +16 -0
- package/docs/paper.md +2 -2
- package/docs/proofs/floor-limit-diag.proof.json +29 -0
- package/docs/reference.md +6 -1
- package/package.json +1 -1
- package/proofs/cofailure-pairs.json +26 -0
- package/proofs/coordination.json +27 -0
- package/proofs/helly-comb.json +17 -0
- package/proofs/lean/Obligations/Cell.lean +159 -0
- package/proofs/lean/Obligations/HellyComb.lean +19 -0
- package/proofs/lineage-ceiling.json +41 -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/marginal-information.json +30 -0
- package/proofs/resolution-encounters.json +23 -0
- package/receipts.bound +613 -288
- package/samples/laws/cofailure-pairs/no/sample.json +1 -0
- package/samples/laws/cofailure-pairs/yes/sample.json +20 -0
- package/samples/laws/linage-rest/no/sample.json +19 -0
- package/samples/laws/linage-rest/yes/sample.json +100 -0
- package/samples/laws/lineage-ceiling/no/sample.json +8 -0
- package/samples/laws/lineage-ceiling/yes/sample.json +30 -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-finite-grid/no/sample.json +5 -0
- package/samples/laws/m0-finite-grid/yes/sample.json +7 -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-pair-coincidence/no/sample.json +5 -0
- package/samples/laws/m0-pair-coincidence/yes/sample.json +7 -0
- package/samples/laws/marginal-information/no/sample.json +17 -0
- package/samples/laws/marginal-information/yes/sample.json +459 -0
- package/samples/laws/semilattice/no/sample.json +18 -0
- package/samples/laws/semilattice/yes/sample.json +29 -0
- package/samples/no/H1-uncertainty.json +24 -0
- package/samples/no/installed-artifact.json +24 -26
- package/samples/yes/H1-uncertainty.json +25 -0
- package/samples/yes/installed-artifact.json +23 -25
- package/vectors/laws/cofailure-pairs.json +2580 -0
- package/vectors/laws/cofailure-pairs.native.json +267 -0
- package/vectors/laws/coordination.json +386 -0
- package/vectors/laws/f1/finite-arithmetic.json +66 -0
- package/vectors/laws/f1/path-witness.json +242 -0
- package/vectors/laws/helly-comb.json +95 -0
- package/vectors/laws/helly-comb.lean.json +94 -0
- package/vectors/laws/linage-rest.native.json +335 -0
- package/vectors/laws/lineage-ceiling.json +790 -0
- package/vectors/laws/lineage-ceiling.native.json +291 -0
- package/vectors/laws/m0-allocation.lean.json +150 -0
- package/vectors/laws/m0-allocation.native.json +104 -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-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/marginal-information.json +868 -0
- package/vectors/laws/marginal-information.native.json +259 -0
- package/vectors/laws/meet-semilattice.json +244 -0
- package/vectors/laws/meet-semilattice.native.json +265 -0
- package/vectors/laws/resolution-encounters.json +171 -0
- package/vectors/measures/installed-artifact.cli.json +8 -12
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import Obligations045.M0Limit
|
|
2
|
+
import Mathlib.Probability.StrongLaw
|
|
3
|
+
import Mathlib.MeasureTheory.Integral.DominatedConvergence
|
|
4
|
+
open scoped BigOperators
|
|
5
|
+
open Filter Topology MeasureTheory ProbabilityTheory
|
|
6
|
+
noncomputable section
|
|
7
|
+
namespace Obligations045.M0
|
|
8
|
+
|
|
9
|
+
theorem floor_quota_bounds (M : Domain) (N i : ℕ) :
|
|
10
|
+
(∑ j ∈ Finset.range M.K, allocation M.w N j = N) ∧
|
|
11
|
+
(-1 < (allocation M.w N i : ℝ)-(N:ℝ)*M.w i ∧
|
|
12
|
+
(allocation M.w N i : ℝ)-(N:ℝ)*M.w i < 1) :=
|
|
13
|
+
⟨allocation_sum M N, allocation_discrepancy M N i⟩
|
|
14
|
+
|
|
15
|
+
theorem allocation_ratio (M : Domain) (i : ℕ) :
|
|
16
|
+
Tendsto (fun N : ℕ => (allocation M.w N i : ℝ)/(N:ℝ)) atTop (𝓝 (M.w i)) := by
|
|
17
|
+
have hInv : Tendsto (fun N : ℕ => (1:ℝ)/(N:ℝ)) atTop (𝓝 0) :=
|
|
18
|
+
tendsto_const_nhds.div_atTop tendsto_natCast_atTop_atTop
|
|
19
|
+
apply tendsto_of_tendsto_of_tendsto_of_le_of_le'
|
|
20
|
+
(by simpa using tendsto_const_nhds.sub hInv)
|
|
21
|
+
(by simpa using tendsto_const_nhds.add hInv)
|
|
22
|
+
· filter_upwards [eventually_ge_atTop 1] with N hN
|
|
23
|
+
have hp : 0 < (N:ℝ) := by exact_mod_cast (lt_of_lt_of_le Nat.zero_lt_one hN)
|
|
24
|
+
rw [le_div_iff₀ hp, sub_mul, inv_mul_cancel₀ hp.ne']
|
|
25
|
+
linarith [(allocation_discrepancy M N i).1]
|
|
26
|
+
· filter_upwards [eventually_ge_atTop 1] with N hN
|
|
27
|
+
have hp : 0 < (N:ℝ) := by exact_mod_cast (lt_of_lt_of_le Nat.zero_lt_one hN)
|
|
28
|
+
rw [div_le_iff₀ hp, add_mul, inv_mul_cancel₀ hp.ne']
|
|
29
|
+
linarith [(allocation_discrepancy M N i).2]
|
|
30
|
+
|
|
31
|
+
theorem allocation_zero (M : Domain) (i : ℕ) (hw : M.w i = 0) (N : ℕ) :
|
|
32
|
+
allocation M.w N i = 0 := by
|
|
33
|
+
simp [allocation, prefix_succ, hw]
|
|
34
|
+
|
|
35
|
+
theorem allocation_atTop (M : Domain) (i : ℕ) (hw : 0 < M.w i) :
|
|
36
|
+
Tendsto (fun N => allocation M.w N i) atTop atTop := by
|
|
37
|
+
apply (tendsto_natCast_atTop_iff (R := ℝ)).mp
|
|
38
|
+
apply tendsto_atTop.2
|
|
39
|
+
intro r
|
|
40
|
+
have he : ∀ᶠ N : ℕ in atTop, (r+1)/M.w i ≤ (N:ℝ) :=
|
|
41
|
+
tendsto_natCast_atTop_atTop.eventually (eventually_ge_atTop _)
|
|
42
|
+
filter_upwards [he] with N hN
|
|
43
|
+
have hmul := (div_le_iff₀ hw).mp hN
|
|
44
|
+
linarith [(allocation_discrepancy M N i).1]
|
|
45
|
+
|
|
46
|
+
theorem lineage_quota_limit (M : Domain) (i : ℕ) (z : ℕ → ℝ) (q : ℝ)
|
|
47
|
+
(hz0 : z 0 = 0)
|
|
48
|
+
(hz : Tendsto (fun n : ℕ => z n/(n:ℝ)) atTop (𝓝 q)) :
|
|
49
|
+
Tendsto (fun N : ℕ => z (allocation M.w N i)/(N:ℝ)) atTop (𝓝 (M.w i*q)) := by
|
|
50
|
+
by_cases hw : M.w i = 0
|
|
51
|
+
· simp [allocation_zero M i hw, hz0, hw]
|
|
52
|
+
· have hp : 0 < M.w i := lt_of_le_of_ne (M.w_nonneg i) (Ne.symm hw)
|
|
53
|
+
have h := (allocation_ratio M i).mul (hz.comp (allocation_atTop M i hp))
|
|
54
|
+
convert h using 1
|
|
55
|
+
funext N
|
|
56
|
+
by_cases hn : allocation M.w N i = 0
|
|
57
|
+
· simp [hn, hz0]
|
|
58
|
+
· dsimp
|
|
59
|
+
rw [div_mul_div_comm, mul_comm (allocation M.w N i : ℝ), mul_div_mul_right _ _ (by exact_mod_cast hn : (allocation M.w N i : ℝ) ≠ 0)]
|
|
60
|
+
|
|
61
|
+
/-- The imported strong law is applied to actual lineage variables; no convergence certificate. -/
|
|
62
|
+
theorem lineage_lgn {Ω : Type*} [MeasurableSpace Ω] (μ : Measure Ω)
|
|
63
|
+
(X : ℕ → Ω → ℝ) (q : ℝ)
|
|
64
|
+
(hint : Integrable (X 0) μ)
|
|
65
|
+
(hindep : Pairwise (fun i j : ℕ => IndepFun (X i) (X j) μ))
|
|
66
|
+
(hident : ∀ i, IdentDistrib (X i) (X 0) μ μ)
|
|
67
|
+
(hmean : ∫ ω, X 0 ω ∂μ = q) :
|
|
68
|
+
∀ᵐ ω ∂μ, Tendsto (fun n : ℕ => (∑ j ∈ Finset.range n, X j ω)/(n:ℝ))
|
|
69
|
+
atTop (𝓝 q) := by
|
|
70
|
+
simpa only [hmean] using strong_law_ae_real X hint hindep hident
|
|
71
|
+
|
|
72
|
+
def memberAverage {Ω : Type*} (M : Domain) (X : Fin M.K → ℕ → Ω → ℝ)
|
|
73
|
+
(N : ℕ) (ω : Ω) : ℝ :=
|
|
74
|
+
∑ i : Fin M.K, (∑ j ∈ Finset.range (allocation M.w N i), X i j ω)/(N:ℝ)
|
|
75
|
+
|
|
76
|
+
theorem member_average_lgn {Ω : Type*} [MeasurableSpace Ω]
|
|
77
|
+
(M : Domain) (a : Fin M.K → Bool) (μ : Measure Ω)
|
|
78
|
+
(X : Fin M.K → ℕ → Ω → ℝ)
|
|
79
|
+
(hint : ∀ i, Integrable (X i 0) μ)
|
|
80
|
+
(hindep : ∀ i, Pairwise (fun j k : ℕ => IndepFun (X i j) (X i k) μ))
|
|
81
|
+
(hident : ∀ i j, IdentDistrib (X i j) (X i 0) μ μ)
|
|
82
|
+
(hmean : ∀ i, ∫ ω, X i 0 ω ∂μ = q M (a i)) :
|
|
83
|
+
∀ᵐ ω ∂μ, Tendsto (fun N => memberAverage M X N ω) atTop (𝓝 (score M a)) := by
|
|
84
|
+
have hall : ∀ᵐ ω ∂μ, ∀ i : Fin M.K,
|
|
85
|
+
Tendsto (fun n : ℕ => (∑ j ∈ Finset.range n, X i j ω)/(n:ℝ))
|
|
86
|
+
atTop (𝓝 (q M (a i))) := by
|
|
87
|
+
rw [ae_all_iff]
|
|
88
|
+
intro i
|
|
89
|
+
exact lineage_lgn μ (X i) (q M (a i)) (hint i) (hindep i) (hident i) (hmean i)
|
|
90
|
+
filter_upwards [hall] with ω hω
|
|
91
|
+
unfold memberAverage score
|
|
92
|
+
apply tendsto_finset_sum
|
|
93
|
+
intro i _
|
|
94
|
+
exact lineage_quota_limit M i (fun n => ∑ j ∈ Finset.range n, X i j ω)
|
|
95
|
+
(q M (a i)) (by simp) (hω i)
|
|
96
|
+
|
|
97
|
+
theorem floor_limit_offdiag_scalar {f : ℕ → ℝ} {s : ℝ}
|
|
98
|
+
(hf : Tendsto f atTop (𝓝 s)) (hne : s ≠ (1:ℝ)/2) :
|
|
99
|
+
Tendsto (fun N => limitingLoss (f N)) atTop (𝓝 (limitingLoss s)) := by
|
|
100
|
+
by_cases hs : s < (1:ℝ)/2
|
|
101
|
+
· have he : ∀ᶠ N in atTop, f N < (1:ℝ)/2 := hf.eventually (Iio_mem_nhds hs)
|
|
102
|
+
have hEq : (fun N => limitingLoss (f N)) =ᶠ[atTop] (fun _ => (1:ℝ)) :=
|
|
103
|
+
he.mono (fun N hN => by change limitingLoss (f N) = 1; rw [limitingLoss, if_pos hN])
|
|
104
|
+
rw [limitingLoss, if_pos hs]
|
|
105
|
+
exact tendsto_const_nhds.congr' hEq.symm
|
|
106
|
+
· have hg : (1:ℝ)/2 < s := lt_of_le_of_ne (le_of_not_gt hs) (Ne.symm hne)
|
|
107
|
+
have he : ∀ᶠ N in atTop, (1:ℝ)/2 < f N := hf.eventually (Ioi_mem_nhds hg)
|
|
108
|
+
have hEq : (fun N => limitingLoss (f N)) =ᶠ[atTop] (fun _ => (0:ℝ)) :=
|
|
109
|
+
he.mono (fun N hN => by
|
|
110
|
+
change limitingLoss (f N) = 0
|
|
111
|
+
rw [limitingLoss, if_neg (not_lt.mpr hN.le), if_neg (Ne.symm hN.ne)])
|
|
112
|
+
rw [limitingLoss, if_neg hs, if_neg hne]
|
|
113
|
+
exact tendsto_const_nhds.congr' hEq.symm
|
|
114
|
+
|
|
115
|
+
/-- Off-diagonal passage from actual sample averages to error probabilities.
|
|
116
|
+
Unlike the diagonal, no CLT is needed. The lineage strong laws and quota
|
|
117
|
+
composition must supply haverage for the chosen M0 array. -/
|
|
118
|
+
theorem floor_limit_offdiag {Ω : Type*} [MeasurableSpace Ω]
|
|
119
|
+
(μ : Measure Ω) [IsProbabilityMeasure μ]
|
|
120
|
+
(average : ℕ → Ω → ℝ) (s : ℝ)
|
|
121
|
+
(hmeas : ∀ N, AEStronglyMeasurable (fun ω => limitingLoss (average N ω)) μ)
|
|
122
|
+
(haverage : ∀ᵐ ω ∂μ, Tendsto (fun N => average N ω) atTop (𝓝 s))
|
|
123
|
+
(hne : s ≠ (1:ℝ)/2) :
|
|
124
|
+
Tendsto (fun N => ∫ ω, limitingLoss (average N ω) ∂μ)
|
|
125
|
+
atTop (𝓝 (limitingLoss s)) := by
|
|
126
|
+
have hbound : ∀ N, ∀ᵐ ω ∂μ, ‖limitingLoss (average N ω)‖ ≤ (1:ℝ) := by
|
|
127
|
+
intro N
|
|
128
|
+
filter_upwards [] with ω
|
|
129
|
+
unfold limitingLoss
|
|
130
|
+
split_ifs <;> norm_num
|
|
131
|
+
have hlim : ∀ᵐ ω ∂μ, Tendsto (fun N => limitingLoss (average N ω))
|
|
132
|
+
atTop (𝓝 (limitingLoss s)) := haverage.mono (fun ω hω => floor_limit_offdiag_scalar hω hne)
|
|
133
|
+
simpa using tendsto_integral_of_dominated_convergence (fun _ => (1:ℝ)) hmeas
|
|
134
|
+
(integrable_const (1:ℝ)) hbound hlim
|
|
135
|
+
|
|
136
|
+
/-- M0 off-diagonal probability limit from declared lineage laws and the proved quotas.
|
|
137
|
+
The only extra technical input is measurability of the loss; no asymptotic
|
|
138
|
+
convergence hypothesis and no CLT certificate is assumed. -/
|
|
139
|
+
theorem floor_limit_offdiag_M0 {Ω : Type*} [MeasurableSpace Ω]
|
|
140
|
+
(M : Domain) (a : Fin M.K → Bool) (μ : Measure Ω) [IsProbabilityMeasure μ]
|
|
141
|
+
(X : Fin M.K → ℕ → Ω → ℝ)
|
|
142
|
+
(hint : ∀ i, Integrable (X i 0) μ)
|
|
143
|
+
(hindep : ∀ i, Pairwise (fun j k : ℕ => IndepFun (X i j) (X i k) μ))
|
|
144
|
+
(hident : ∀ i j, IdentDistrib (X i j) (X i 0) μ μ)
|
|
145
|
+
(hmean : ∀ i, ∫ ω, X i 0 ω ∂μ = q M (a i))
|
|
146
|
+
(hmeas : ∀ N, AEStronglyMeasurable (fun ω => limitingLoss (memberAverage M X N ω)) μ)
|
|
147
|
+
(hoff : score M a ≠ (1:ℝ)/2) :
|
|
148
|
+
Tendsto (fun N => ∫ ω, limitingLoss (memberAverage M X N ω) ∂μ)
|
|
149
|
+
atTop (𝓝 (limitingLoss (score M a))) := by
|
|
150
|
+
exact floor_limit_offdiag μ (memberAverage M X) (score M a) hmeas
|
|
151
|
+
(member_average_lgn M a μ X hint hindep hident hmean) hoff
|
|
152
|
+
|
|
153
|
+
theorem floor_limit_offdiag_mixture {Ω : Type*} [MeasurableSpace Ω]
|
|
154
|
+
(M : Domain) (μ : Measure Ω) [IsProbabilityMeasure μ]
|
|
155
|
+
(X : (Fin M.K → Bool) → Fin M.K → ℕ → Ω → ℝ)
|
|
156
|
+
(hint : ∀ a i, Integrable (X a i 0) μ)
|
|
157
|
+
(hindep : ∀ a i, Pairwise (fun j k : ℕ => IndepFun (X a i j) (X a i k) μ))
|
|
158
|
+
(hident : ∀ a i j, IdentDistrib (X a i j) (X a i 0) μ μ)
|
|
159
|
+
(hmean : ∀ a i, ∫ ω, X a i 0 ω ∂μ = q M (a i))
|
|
160
|
+
(hmeas : ∀ a N, AEStronglyMeasurable (fun ω => limitingLoss (memberAverage M (X a) N ω)) μ)
|
|
161
|
+
(hoff : ∀ a, score M a ≠ (1:ℝ)/2) :
|
|
162
|
+
Tendsto (fun N => ∑ a : Fin M.K → Bool, latentMass M a *
|
|
163
|
+
∫ ω, limitingLoss (memberAverage M (X a) N ω) ∂μ)
|
|
164
|
+
atTop (𝓝 (floor M)) := by
|
|
165
|
+
unfold floor
|
|
166
|
+
apply tendsto_finset_sum
|
|
167
|
+
intro a _
|
|
168
|
+
exact tendsto_const_nhds.mul (floor_limit_offdiag_M0 M a μ (X a)
|
|
169
|
+
(hint a) (hindep a) (hident a) (hmean a) (hmeas a) (hoff a))
|
|
170
|
+
|
|
171
|
+
end Obligations045.M0
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "1.1.0",
|
|
3
|
+
"packagesDir": ".lake/packages",
|
|
4
|
+
"packages": [
|
|
5
|
+
{
|
|
6
|
+
"url": "https://github.com/leanprover-community/plausible",
|
|
7
|
+
"type": "git",
|
|
8
|
+
"subDir": null,
|
|
9
|
+
"scope": "leanprover-community",
|
|
10
|
+
"rev": "77e08eddc486491d7b9e470926b3dbe50319451a",
|
|
11
|
+
"name": "plausible",
|
|
12
|
+
"manifestFile": "lake-manifest.json",
|
|
13
|
+
"inputRev": "main",
|
|
14
|
+
"inherited": true,
|
|
15
|
+
"configFile": "lakefile.toml"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"url": "https://github.com/leanprover-community/LeanSearchClient",
|
|
19
|
+
"type": "git",
|
|
20
|
+
"subDir": null,
|
|
21
|
+
"scope": "leanprover-community",
|
|
22
|
+
"rev": "25078369972d295301f5a1e53c3e5850cf6d9d4c",
|
|
23
|
+
"name": "LeanSearchClient",
|
|
24
|
+
"manifestFile": "lake-manifest.json",
|
|
25
|
+
"inputRev": "main",
|
|
26
|
+
"inherited": true,
|
|
27
|
+
"configFile": "lakefile.toml"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"url": "https://github.com/leanprover-community/import-graph",
|
|
31
|
+
"type": "git",
|
|
32
|
+
"subDir": null,
|
|
33
|
+
"scope": "leanprover-community",
|
|
34
|
+
"rev": "e6a9f0f5ee3ccf7443a0070f92b62f8db12ae82b",
|
|
35
|
+
"name": "importGraph",
|
|
36
|
+
"manifestFile": "lake-manifest.json",
|
|
37
|
+
"inputRev": "main",
|
|
38
|
+
"inherited": true,
|
|
39
|
+
"configFile": "lakefile.toml"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"url": "https://github.com/leanprover-community/ProofWidgets4",
|
|
43
|
+
"type": "git",
|
|
44
|
+
"subDir": null,
|
|
45
|
+
"scope": "leanprover-community",
|
|
46
|
+
"rev": "c4919189477c3221e6a204008998b0d724f49904",
|
|
47
|
+
"name": "proofwidgets",
|
|
48
|
+
"manifestFile": "lake-manifest.json",
|
|
49
|
+
"inputRev": "v0.0.57",
|
|
50
|
+
"inherited": true,
|
|
51
|
+
"configFile": "lakefile.lean"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"url": "https://github.com/leanprover-community/aesop",
|
|
55
|
+
"type": "git",
|
|
56
|
+
"subDir": null,
|
|
57
|
+
"scope": "leanprover-community",
|
|
58
|
+
"rev": "5d50b08dedd7d69b3d9b3176e0d58a23af228884",
|
|
59
|
+
"name": "aesop",
|
|
60
|
+
"manifestFile": "lake-manifest.json",
|
|
61
|
+
"inputRev": "master",
|
|
62
|
+
"inherited": true,
|
|
63
|
+
"configFile": "lakefile.toml"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"url": "https://github.com/leanprover-community/quote4",
|
|
67
|
+
"type": "git",
|
|
68
|
+
"subDir": null,
|
|
69
|
+
"scope": "leanprover-community",
|
|
70
|
+
"rev": "fa4f7f15d97591a9cf3aa7724ba371c7fc6dda02",
|
|
71
|
+
"name": "Qq",
|
|
72
|
+
"manifestFile": "lake-manifest.json",
|
|
73
|
+
"inputRev": "master",
|
|
74
|
+
"inherited": true,
|
|
75
|
+
"configFile": "lakefile.toml"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"url": "https://github.com/leanprover-community/batteries",
|
|
79
|
+
"type": "git",
|
|
80
|
+
"subDir": null,
|
|
81
|
+
"scope": "leanprover-community",
|
|
82
|
+
"rev": "f5d04a9c4973d401c8c92500711518f7c656f034",
|
|
83
|
+
"name": "batteries",
|
|
84
|
+
"manifestFile": "lake-manifest.json",
|
|
85
|
+
"inputRev": "main",
|
|
86
|
+
"inherited": true,
|
|
87
|
+
"configFile": "lakefile.toml"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"url": "https://github.com/leanprover/lean4-cli",
|
|
91
|
+
"type": "git",
|
|
92
|
+
"subDir": null,
|
|
93
|
+
"scope": "leanprover",
|
|
94
|
+
"rev": "02dbd02bc00ec4916e99b04b2245b30200e200d0",
|
|
95
|
+
"name": "Cli",
|
|
96
|
+
"manifestFile": "lake-manifest.json",
|
|
97
|
+
"inputRev": "main",
|
|
98
|
+
"inherited": true,
|
|
99
|
+
"configFile": "lakefile.toml"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"url": "https://github.com/leanprover-community/mathlib4.git",
|
|
103
|
+
"type": "git",
|
|
104
|
+
"subDir": null,
|
|
105
|
+
"scope": "",
|
|
106
|
+
"rev": "c44e0c8ee63ca166450922a373c7409c5d26b00b",
|
|
107
|
+
"name": "mathlib",
|
|
108
|
+
"manifestFile": "lake-manifest.json",
|
|
109
|
+
"inputRev": "c44e0c8ee63ca166450922a373c7409c5d26b00b",
|
|
110
|
+
"inherited": false,
|
|
111
|
+
"configFile": "lakefile.lean"
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"name": "obligations_lineage",
|
|
115
|
+
"lakeDir": ".lake"
|
|
116
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
name = "obligations_lineage"
|
|
2
|
+
version = "0.0.0"
|
|
3
|
+
defaultTargets = ["Obligations045"]
|
|
4
|
+
[[require]]
|
|
5
|
+
name = "mathlib"
|
|
6
|
+
git = "https://github.com/leanprover-community/mathlib4.git"
|
|
7
|
+
rev = "c44e0c8ee63ca166450922a373c7409c5d26b00b"
|
|
8
|
+
[[lean_lib]]
|
|
9
|
+
name = "Obligations045"
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
leanprover/lean4:v4.19.0
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id":"marginal-information/one-joint-two-orders",
|
|
3
|
+
"classification":"measure with an explicit finite joint prior; standard chain-rule and conditional-DPI consequences with distinguishing vectors, not a new universal lineage law",
|
|
4
|
+
"quantity":"Delta(Y|S)=I(T;Y|S)=H(T|S)-H(T|S,Y). Both orders use the identical full joint law, truth variable, prior, source identities and domain. The selected observation is the full tuple, not an aggregated majority value.",
|
|
5
|
+
"scope":"Finite named alphabets and rational joint probabilities normalized exactly to one; bits use the existing binary64-log2 approximation. These are model quantities, not certified empirical mutual-information estimates.",
|
|
6
|
+
"knownIdentities":[
|
|
7
|
+
{"statement":"Delta>=0; Delta=0 iff T and Y are conditionally independent given S, under the declared joint law.","classification":"standard Shannon identity and nonnegativity; finite vectors here, no new Lean formalization"},
|
|
8
|
+
{"statement":"For any complete addition order, the sum of marginals is I(T;all sources). The sum is invariant, while individual attribution may depend on order.","classification":"chain rule; no permutation of attributed acts or history is performed"},
|
|
9
|
+
{"statement":"An exact copy determined by S has zero marginal information. Another source has strictly greater gain only when its conditional information is positive.","classification":"conditional consequence, not a rule inferred from lineage labels"}
|
|
10
|
+
],
|
|
11
|
+
"comparison":{
|
|
12
|
+
"sufficientHypothesis":"For the same prior and previous tuple S, require T -> (S,Y_other) -> Y_same, equivalently I(T;Y_same|S,Y_other)=0. This is a conditional garbling/order assumption; distinct lineage or equal prediction accuracy does not establish it.",
|
|
13
|
+
"conclusion":"I(T;Y_same|S)<=I(T;Y_other|S). Strictness additionally requires a positive information difference; it is not automatic.",
|
|
14
|
+
"argument":"Expand I(T;Y_same,Y_other|S) in both orders. Under the stated conditional independence the expansion beginning with Y_other ends at I(T;Y_other|S). The other expansion adds a nonnegative term to I(T;Y_same|S).",
|
|
15
|
+
"vectorCheck":"The candidate reader verifies the conditional-independence hypothesis by exact rational factorization of the handed finite table; it does not infer causal lineages."
|
|
16
|
+
},
|
|
17
|
+
"existingImplementation":"Reuse published mixProjectionLoss on configurations (truth, selected tuple), with zero weight on truth and unit weight on tuple. Its conditional configuration loss is exactly H(truth|tuple). No entropy engine, causal generator or algebra is replaced.",
|
|
18
|
+
"counterexamples":[
|
|
19
|
+
{"id":"equal-quality-reverses-lineage-ranking","result":"All three sources have accuracy 1/2 and individual information 1 bit. After the first source, the same-lineage complementary projection adds 1 bit while the other-lineage redundant projection adds 0. A comparable marginal quality is insufficient; the missing condition concerns joint conditional information."},
|
|
20
|
+
{"id":"saturated-truth","result":"After a perfect report, a noiseless report from a distinct declared lineage adds zero, so no universal strict ranking holds."},
|
|
21
|
+
{"id":"xor-synergy","result":"Each masked view alone has zero truth information; after one view the other adds a bit. Mutual-information gains need not have diminishing returns without additional hypotheses."},
|
|
22
|
+
{"id":"majority-is-not-the-joint-observation","result":"The full tuple preserves the perfect first report. The existing weighted mix becomes constant after two constant-zero reports and loses a bit. That loss is not negative conditional mutual information."}
|
|
23
|
+
],
|
|
24
|
+
"validation":"Missing joint/prior is unmeasured; nonnormalized priors, invalid domains and orders that are not permutations refuse by name. Every prefix is projected from the same complete joint table; no defaults, resampling, inferred independence or truth-free estimation is supplied.",
|
|
25
|
+
"cache":"Only scalar subset readings are cached by an explicitly named set-of-coordinates key. This sorts neither the handed addition orders nor their attributed history; probabilities and atom IDs remain intact.",
|
|
26
|
+
"numeric":"Exact rational masses; approximate bits, default vector tolerance 1e-12. Raw floating-point residuals are retained, never clamped to zero to claim a law.",
|
|
27
|
+
"literature":{"title":"Lecture Notes on Statistics and Information Theory","author":"John Duchi","url":"https://web.stanford.edu/class/stats311/lecture-notes.pdf","references":["Chapter 2.1, mutual-information chain rule","Proposition 2.1.9, data processing"],"alreadyKnown":"Conditional mutual information, the chain rule and data processing.","addsHere":"One-joint two-order vectors, an exact finite check of the comparison hypothesis, and counterexamples to lineage-only ranking; no new Shannon inequality."},
|
|
28
|
+
"unchanged":"Bound, wire, M/3-M/4, the algebra and signed public exports remain unchanged. The new measure is a candidate beside the algebra.",
|
|
29
|
+
"open":["No causal lineage identification or optimal source-selection policy follows.","No sampling uncertainty or truth-free estimation of mutual information is claimed.","General Shannon formalization, reader admission, public delivery and export remain pending."]
|
|
30
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "resolution-encounters@1",
|
|
3
|
+
"policy": "vectors/laws/policy.json",
|
|
4
|
+
"classification": "conjecture with falsifiers; H1 remains open",
|
|
5
|
+
"statement": "No unconditional monotonicity, floor K or ceiling N follows for resolution times encounters from the published H1 statement.",
|
|
6
|
+
"existing": "Published law/H1-uncertainty is a conjecture, not a law. Its sample has resolutions and fractional origins but no K, N, counting population or sampling model.",
|
|
7
|
+
"unresolved": [
|
|
8
|
+
"Meaning of r: chain depth is not number of cells.",
|
|
9
|
+
"Definition and units of encounters per cell, population, multiplicity and denominator.",
|
|
10
|
+
"Definitions of K and N, fixed across comparisons.",
|
|
11
|
+
"Coupling of observations across refinements, coverage preservation and admissible withdrawals.",
|
|
12
|
+
"An explicit assumption about independent observations, if that word is retained; source names are insufficient."
|
|
13
|
+
],
|
|
14
|
+
"conditionalArithmetic": "If independently specified nonnegative r,e satisfy K<=r*e<=N this checks the inequalities only; it does not derive a counting model or prove H1. A refinement needs r_next*e_next>=r*e for monotonicity; increasing r alone is insufficient.",
|
|
15
|
+
"falsifierCorrection": "A rising product is compatible with a lower bound. A fixed declared positive floor is refuted by a valid product below that floor; monotonicity by a decrease; an upper bound by an exceedance. A sample minimum selected after seeing the data is not an a priori floor.",
|
|
16
|
+
"positive": "Replay the published six decimal sample values using exact decimal rationals; its products increase. This is an experiment, not independent empirical origins or a universal law.",
|
|
17
|
+
"negative": "Resolution [1,2] and encounters [4,1] give [4,2], a decrease. With separately handed K=3, N=5, resolution [1,2,4], encounters [2,2,2] give [2,4,8], violating both bounds. Diagnostic countertables have no claimed physical realization or unstated counting model.",
|
|
18
|
+
"adds": "Explicit failure modes and a corrected falsifier proposal only. No signed README or declaration edited.",
|
|
19
|
+
"status": "open: counting/refinement model absent",
|
|
20
|
+
"signatures": 0,
|
|
21
|
+
"admission": false,
|
|
22
|
+
"existingNegative": "samples/no/H1-uncertainty.json checks products [4,2,3,4] against floor 4.8. The numeric failure is valid for that declared floor; the prose reason (a rising product refutes a floor) is incorrect."
|
|
23
|
+
}
|