Experimentation.Exposure­Mapping­Interference.Asymptotics

Asymptotics for exposure-mapping interference: HT consistency, local-dependence CLTs, variance-estimator consistency, and Wald coverage.

Consistency 4 core · 1 supporting Along a sequence of nested finite-population experiments, the HT exposure-mean estimator converges in probability to its estimand under versions of the two assumptions used for Aronow–Samii (2017), Proposition 6.1: * Con ★ Experiment★ htMean_consistent_of_bounded_dependency

Horvitz–Thompson exposure-mean consistency

Along a sequence of nested finite-population experiments, the HT exposure-mean estimator converges in probability to its estimand under versions of the two assumptions used for Aronow–Samii (2017), Proposition 6.1:

* Condition 3 (boundedness): outcomes and inverse exposure probabilities are bounded, so each weighted summand y_i(d)/π_i(d) is bounded by a constant c. * Condition 4 (pairwise dependence): ∑_{i,j} g_{ij} = o(N²), where g_{ij}=0 whenever the exposure indicators of i and j are uncorrelated.

The proof is the lightweight-layer Chebyshev inequality applied to the O((N+∑g)/N²) variance bound; no central limit theorem is needed. The theorem is the one-exposure component used to obtain the paper's effect-estimator conclusion, rather than Proposition 6.1 itself.

structure Experiment reviewed
Causalean.Experimentation.ExposureMappingInterference

A design-based experiment on a finite population: a finite assignment space Ω equipped with a randomization design D over it, a finite population of units ι each assigned a trait in a trait space Θ, exposure-indexed potential outcomes y, one real value per unit and exposure in an exposure space Δ, and an exposure mapping f sending each assignment and unit trait to a realized exposure.

Definition (Lean source)
Finite assignment space.
Ω :
Type
Finite population of units.
ι :
Unit-trait space.
Θ :
Type
Exposure space.
Δ :
Randomization design.
D :
Exposure-indexed potential outcomes.
y :
ι → Δ → ℝ
Exposure mapping.
f :
Ω → Θ → Δ
Unit traits.
θ :
ι → Θ
Causalean.Experimentation.ExposureMappingInterference.Experiment · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/Consistency.lean:41
def gdep reviewed
Causalean.Experimentation.ExposureMappingInterference.Experiment

Given an experiment, an exposure level, and two units, the pairwise dependency indicator equals zero when their indicators for that exposure have zero design covariance, and equals one otherwise.

Definition (Lean source)
E :
shared
d :
E.Δ
i j :
E.ι
gdep E d i j :
ℝ
by classical exact if E.D.Cov (expoInd E.f E.θ i d) (expoInd E.f E.θ j d)
= 0 then 0 else 1
Causalean.Experimentation.ExposureMappingInterference.Experiment.gdep · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/Consistency.lean:75 · uses Experiment
def N reviewed
Causalean.Experimentation.ExposureMappingInterference.Experiment

Given an experiment, the population size is the number of units in its finite population.

Definition (Lean source)
E :
shared
N E :
ℕ
card E.ι
Causalean.Experimentation.ExposureMappingInterference.Experiment.N · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/Consistency.lean:82 · uses Experiment
theorem htMean_consistent_of_bounded_dependency reviewed
Causalean.Experimentation.ExposureMappingInterference

One-exposure consistency ingredient for Aronow--Samii (2017), Proposition 6.1. Along a sequence of experiments and exposures of interest, suppose every exposure probability is nonzero, weighted outcomes are uniformly bounded by nonnegative c, population size tends to infinity, and the normalized dependency sum tends to zero. Then, for every positive threshold, the Horvitz--Thompson exposure mean converges in probability.

Formal statement
Exp :
ℕ → Experiment
d :
∀ n, (Exp n).Δ
hpos :
∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (d n) ≠ 0
c :
ℝ
hc :
0 ≤ c
hbound :
∀ n i, |(Exp n).y i (d n) / prop (Exp n).D (Exp n).f (Exp n).θ i (d n)| ≤ c
hN :
Tendsto (fun n => (Exp n).N) atTop atTop
hdep :
Tendsto (fun n => (∑ i, ∑ j ∈ Finset.univ.erase i, (Exp n).gdep (d n) i j) / ((Exp n).N : ℝ) ^ 2) atTop (𝓝 0)
ε :
ℝ
hε :
0 < ε
Tendsto (fun n => (Exp n).D.Pr (fun z => ε ≤ |htMean (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (d n) z - muTrue (Exp n).y (d n)|)) atTop (𝓝 (0 : ℝ))
Proof (Lean source)
theorem htMean_consistent_of_bounded_dependency (Exp : ℕ → Experiment) (d : ∀ n, (Exp n).Δ) (hpos : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (d n) ≠ 0) {c : ℝ} (hc : 0 ≤ c) (hbound : ∀ n i, |(Exp n).y i (d n) / prop (Exp n).D (Exp n).f (Exp n).θ i (d n)| ≤ c) (hN : Tendsto (fun n => (Exp n).N) atTop atTop) (hdep : Tendsto (fun n => (∑ i, ∑ j ∈ Finset.univ.erase i, (Exp n).gdep (d n) i j) / ((Exp n).N : ℝ) ^ 2) atTop (𝓝 0)) {ε : ℝ} (hε : 0 < ε) : Tendsto (fun n => (Exp n).D.Pr (fun z => ε ≤ |htMean (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (d n) z - muTrue (Exp n).y (d n)|)) atTop (𝓝 (0 : ℝ)) := by have hNreal : Tendsto (fun n => ((Exp n).N : ℝ)) atTop atTop := tendsto_natCast_atTop_atTop.comp hN have hNinv : Tendsto (fun n => ((Exp n).N : ℝ)⁻¹) atTop (𝓝 0) := tendsto_inv_atTop_zero.comp hNreal have hvarUpper : Tendsto (fun n => c ^ 2 * (((Exp n).N : ℝ) + ∑ i, ∑ j ∈ Finset.univ.erase i, (Exp n).gdep (d n) i j) / ((Exp n).N : ℝ) ^ 2) atTop (𝓝 0) := by have hmain := (tendsto_const_nhds.mul (hNinv.add hdep) : Tendsto (fun n => c ^ 2 * (((Exp n).N : ℝ)⁻¹ + (∑ i, ∑ j ∈ Finset.univ.erase i, (Exp n).gdep (d n) i j) / ((Exp n).N : ℝ) ^ 2)) atTop (𝓝 (c ^ 2 * (0 + 0)))) convert hmain using 1 · funext n set N : ℝ := ((Exp n).N : ℝ) set S : ℝ := ∑ i, ∑ j ∈ Finset.univ.erase i, (Exp n).gdep (d n) i j by_cases hN0 : N = 0 · simp [hN0] · field_simp · simp have hvar : Tendsto (fun n => (Exp n).D.Var (htMean (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (d n))) atTop (𝓝 0) := by refine squeeze_zero (fun n => (Exp n).D.E_nonneg (fun _ => sq_nonneg _)) (fun n => ?_) hvarUpper exact (Exp n).Var_htMean_le (d n) hc (hbound n) have hε2 : (0 : ℝ) < ε ^ 2 := pow_pos hε 2 -- Upper bound: `Var_n / ε²`, which tends to `0` by Chebyshev + `hvar`. refine squeeze_zero (g := fun n => (Exp n).D.Var (htMean (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (d n)) / ε ^ 2) (fun n => ?_) (fun n => ?_) ?_ · -- `0 ≤ Pr_n`: a sum of nonnegative terms. unfold FiniteDesign.Pr FiniteDesign.E FiniteDesign.ind refine Finset.sum_nonneg (fun z _ => ?_) exact mul_nonneg ((Exp n).D.p_nonneg z) (by positivity) · -- `Pr_n ≤ Var_n / ε²` by Chebyshev, using unbiasedness to recenter. have hcenter : muTrue (Exp n).y (d n) = (Exp n).D.E (htMean (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (d n)) := (E_htMean (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (d n) (hpos n)).symm rw [hcenter] exact (Exp n).D.chebyshev (htMean (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (d n)) hε · -- `Var_n / ε² → 0 / ε² = 0`. have := hvar.div_const (ε ^ 2) simpa using this
Causalean.Experimentation.ExposureMappingInterference.htMean_consistent_of_bounded_dependency · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/Consistency.lean:190 · uses Pr , htMean , muTrue , prop , Experiment , N , gdep
1 supporting declaration (lemmas, instances)
  • Var_htMean_le theorem — Variance bound. Under a uniform bound c on |y_i(d)/π_i(d)|, the variance of the HT mean estimator is O((N + ∑_{i,j} g_{ij})/N²).
    E :
    shared
    d :
    E.Δ
    c :
    ℝ
    hc :
    0 ≤ c
    hbound :
    ∀ i, |E.y i d / prop E.D E.f E.θ i d| ≤ c
    E.D.Var (htMean E.D E.y E.f E.θ d)
    ≤ c ^ 2 * ((E.N : ℝ) + ∑ i, ∑ j ∈ Finset.univ.erase i, E.gdep d i j) / (E.N : ℝ) ^ 2
    Proof (Lean source)
    theorem Var_htMean_le (d : E.Δ) {c : ℝ} (hc : 0 ≤ c) (hbound : ∀ i, |E.y i d / prop E.D E.f E.θ i d| ≤ c) : E.D.Var (htMean E.D E.y E.f E.θ d) ≤ c ^ 2 * ((E.N : ℝ) + ∑ i, ∑ j ∈ Finset.univ.erase i, E.gdep d i j) / (E.N : ℝ) ^ 2 := by classical -- Abbreviations. set w : E.ι → ℝ := fun i => E.y i d / prop E.D E.f E.θ i d with hw set Cov : E.ι → E.ι → ℝ := fun i j => E.D.Cov (expoInd E.f E.θ i d) (expoInd E.f E.θ j d) with hCov -- Covariance bound: `|Cov i j| ≤ 1` for all `i, j`. have hCovBound : ∀ i j, |Cov i j| ≤ 1 := by intro i j exact abs_Cov_le_one_of_mem_unit E.D _ _ (fun z => FiniteDesign.ind_nonneg _ z) (fun z => FiniteDesign.ind_le_one _ z) (fun z => FiniteDesign.ind_nonneg _ z) (fun z => FiniteDesign.ind_le_one _ z) -- Termwise bound: `|w i * w j * Cov i j| ≤ c ^ 2`. have hTerm : ∀ i j, |w i * w j * Cov i j| ≤ c ^ 2 := by intro i j rw [abs_mul, abs_mul] have h1 : |w i| * |w j| ≤ c * c := mul_le_mul (hbound i) (hbound j) (abs_nonneg _) hc calc |w i| * |w j| * |Cov i j| ≤ (c * c) * 1 := mul_le_mul h1 (hCovBound i j) (abs_nonneg _) (by positivity) _ = c ^ 2 := by ring -- Off-diagonal termwise bound: `w i * w j * Cov i j ≤ c ^ 2 * gdep d i j`. have hOff : ∀ i, ∀ j ∈ Finset.univ.erase i, w i * w j * Cov i j ≤ c ^ 2 * E.gdep d i j := by intro i j _ unfold Experiment.gdep by_cases hz : E.D.Cov (expoInd E.f E.θ i d) (expoInd E.f E.θ j d) = 0 · rw [if_pos hz, mul_zero] have : Cov i j = 0 := hz rw [this, mul_zero] · rw [if_neg hz, mul_one] exact le_trans (le_abs_self _) (hTerm i j) -- Diagonal termwise bound: `w i * w i * Cov i i ≤ c ^ 2`. have hDiag : ∀ i, w i * w i * Cov i i ≤ c ^ 2 := fun i => le_trans (le_abs_self _) (hTerm i i) -- Bound `Var (htTotal) ≤ c ^ 2 * (N + S)`. set S : ℝ := ∑ i, ∑ j ∈ Finset.univ.erase i, E.gdep d i j with hS have hTotal : E.D.Var (htTotal E.D E.y E.f E.θ d) ≤ c ^ 2 * ((E.N : ℝ) + S) := by rw [Var_htTotal_cov] -- Split each inner sum into the diagonal `j = i` plus the `erase i` remainder. have hsplit : (∑ i, ∑ j, w i * w j * Cov i j) = (∑ i, w i * w i * Cov i i) + ∑ i, ∑ j ∈ Finset.univ.erase i, w i * w j * Cov i j := by rw [← Finset.sum_add_distrib] refine Finset.sum_congr rfl (fun i _ => ?_) rw [← Finset.add_sum_erase univ (fun j => w i * w j * Cov i j) (Finset.mem_univ i)] rw [hsplit] have hDiagSum : (∑ i, w i * w i * Cov i i) ≤ c ^ 2 * (E.N : ℝ) := by calc (∑ i, w i * w i * Cov i i) ≤ ∑ _i : E.ι, c ^ 2 := Finset.sum_le_sum (fun i _ => hDiag i) _ = c ^ 2 * (E.N : ℝ) := by rw [Finset.sum_const, nsmul_eq_mul, Experiment.N, Finset.card_univ, mul_comm] have hOffSum : (∑ i, ∑ j ∈ Finset.univ.erase i, w i * w j * Cov i j) ≤ c ^ 2 * S := by rw [hS, Finset.mul_sum] refine Finset.sum_le_sum (fun i _ => ?_) rw [Finset.mul_sum] exact Finset.sum_le_sum (fun j hj => hOff i j hj) rw [mul_add] exact add_le_add hDiagSum hOffSum -- Reduce the HT mean variance to the HT total variance. have hmean : htMean E.D E.y E.f E.θ d = fun z => (Fintype.card E.ι : ℝ)⁻¹ * htTotal E.D E.y E.f E.θ d z := by funext z; rw [htMean, div_eq_inv_mul] rw [hmean, FiniteDesign.Var_const_mul] -- Now: `(card)⁻¹ ^ 2 * Var(htTotal) ≤ c ^ 2 * (N + S) / N ^ 2`. have hNdef : (E.N : ℝ) = (Fintype.card E.ι : ℝ) := by rw [Experiment.N] rw [hNdef] by_cases hN0 : (Fintype.card E.ι : ℝ) = 0 · rw [hN0]; simp · have hpos2 : (0 : ℝ) ≤ ((Fintype.card E.ι : ℝ)⁻¹) ^ 2 := by positivity have hVarNonneg := mul_le_mul_of_nonneg_left hTotal hpos2 refine le_trans hVarNonneg ?_ rw [hNdef] at hTotal ⊢ -- `(card)⁻² * (c²(N+S)) = c²(N+S)/N²`. rw [div_eq_mul_inv, inv_pow] ring_nf rfl
    Causalean.Experimentation.ExposureMappingInterference.Experiment.Var_htMean_le · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/Consistency.lean:103
Stein­CLT 2 core · 0 supporting Asymptotic normality of the Horvitz–Thompson effect estimator under interference rests on a central limit theorem for locally dependent random fields, proved via Stein's method (Chen & Shao 2004, Thm 2.7). ★ LocalDependenceCLT

Local-dependence CLT interface (Aronow-Samii 2017, via Chen-Shao 2004)

Asymptotic normality of the Horvitz–Thompson effect estimator under interference rests on a central limit theorem for locally dependent random fields, proved via Stein's method (Chen & Shao 2004, Thm 2.7). The LocalDependenceCLT structure packages the exact convergence statement consumed by the interval theorem, while SteinInstance.lean connects this interface to the dependency-graph Stein CLT developed elsewhere in the library.

def studentizedEffect reviewed
Causalean.Experimentation.ExposureMappingInterference.Experiment

Given an experiment, two target exposure levels, and a realized assignment, the studentized Horvitz--Thompson effect statistic is the estimated effect minus the corresponding finite-population effect, divided by the true standard deviation of the estimator under the randomization design.

Definition (Lean source)
E :
shared
dk dl :
E.Δ
z :
E.Ω
studentizedEffect E dk dl z :
ℝ
(htEffect E.D E.y E.f E.θ dk dl z - tauTrue E.y dk dl) / sqrt (E.D.Var (htEffect E.D E.y E.f E.θ dk dl))
Causalean.Experimentation.ExposureMappingInterference.Experiment.studentizedEffect · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/SteinCLT.lean:38 · uses Experiment
structure LocalDependenceCLT reviewed
Causalean.Experimentation.ExposureMappingInterference

Chen-Shao local-dependence CLT interface, bounded-neighborhood case. Along a sequence of experiments Exp with a chosen pair of exposure levels dk, dl at each sample size, this records that the design probability that the studentized Horvitz–Thompson effect statistic falls below any fixed threshold converges, as the sample size grows, to the standard normal CDF at that threshold.

Definition (Lean source)
Exp :
ℕ → Experiment
dk dl :
∀ n, (Exp n).Δ
tendsto_cdf :
∀ t : ℝ,
Tendsto (fun n => (Exp n).D.Pr (fun z => (Exp n).studentizedEffect (dk n) (dl n) z ≤ t)) atTop (𝓝 (stdNormalCdf t))

Convergence in distribution of the studentized statistic to 𝒩(0,1), via the CDF.

Causalean.Experimentation.ExposureMappingInterference.LocalDependenceCLT · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/SteinCLT.lean:48 · uses Experiment
Stein­Instance 5 core · 4 supporting This file bridges the finite-design Horvitz-Thompson effect statistic to the measure-theoretic dependency-graph Stein CLT. ★ localDependenceCLT_of_stein★ wald_coverage_of_conditions★ localDependenceCLT_of_bounded_degree_scaled_variance

Discharging LocalDependenceCLT via the abstract Stein CLT

This file bridges the finite-design Horvitz-Thompson effect statistic to the measure-theoretic dependency-graph Stein CLT. The studentized effect statistic is written as a sum of per-unit summands

Xₙᵢ = (rawᵢ − E[rawᵢ]) / (N · σₙ), σₙ = √(Var[τ̂]),

where rawᵢ = 1(Dᵢ=dk)Yᵢ/πᵢ(dk) − 1(Dᵢ=dl)Yᵢ/πᵢ(dl) is unit i's contribution to N·τ̂. Then ∑ᵢ Xₙᵢ = studentizedEffect, the summands are mean-zero with Var(∑Xₙᵢ)=1, and the abstract dependency-graph CLT stein_cdf_clt yields P[studentizedEffect ≤ t] → Φ(t), i.e. LocalDependenceCLT.

The main public results are localDependenceCLT_of_stein, which assumes the Stein negligibility limits directly, localDependenceCLT_of_conditions, which derives those limits from a bounded dependency graph and uniformly negligible summands, and localDependenceCLT_of_bounded_degree_scaled_variance, which packages bounded outcomes, positive propensities, population growth, a bounded-degree dependency graph, and an assumed positive scaled-variance limit. These are alternative sufficient conditions, not a derivation of Aronow–Samii's exact Conditions 3, 5, and 6. The corresponding wald_coverage_of_* theorems compose these CLT discharges with the oracle Wald-coverage theorem.

def effRaw reviewed
Causalean.Experimentation.ExposureMappingInterference.Experiment

Given an experiment, two target exposure levels, a unit, and a realized assignment, the raw effect contribution is that unit's inverse-propensity-weighted observed outcome under the first exposure level minus its analogous weighted observed outcome under the second exposure level.

Definition (Lean source)
E :
shared
dk dl :
E.Δ
i :
E.ι
z :
E.Ω
effRaw E dk dl i z :
ℝ
expoInd E.f E.θ i dk z * Yobs E.y E.f E.θ i z / prop E.D E.f E.θ i dk
- expoInd E.f E.θ i dl z * Yobs E.y E.f E.θ i z / prop E.D E.f E.θ i dl
Causalean.Experimentation.ExposureMappingInterference.Experiment.effRaw · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/SteinInstance.lean:58 · uses Experiment
def effSummand reviewed
Causalean.Experimentation.ExposureMappingInterference.Experiment

Given an experiment, two target exposure levels, a unit, and a realized assignment, the standardized effect summand is the unit's raw effect contribution minus its design expectation, divided by the population size times the true standard deviation of the Horvitz--Thompson effect estimator.

Definition (Lean source)
E :
shared
dk dl :
E.Δ
i :
E.ι
z :
E.Ω
effSummand E dk dl i z :
ℝ
(effRaw E dk dl i z - E.D.E (effRaw E dk dl i)) / ((Fintype.card E.ι : ℝ) * sqrt (E.D.Var (htEffect E.D E.y E.f E.θ dk dl)))
Causalean.Experimentation.ExposureMappingInterference.Experiment.effSummand · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/SteinInstance.lean:66 · uses Experiment
theorem localDependenceCLT_of_stein reviewed
Causalean.Experimentation.ExposureMappingInterference

Local-dependence CLT from the abstract Stein conditions. For a pair of treatment sequences dk, dl and a choice of dependency neighbourhoods N n i, suppose the design variance of the Horvitz–Thompson effect estimator is everywhere positive, every unit has nonzero exposure probability under dk and under dl, and the per-unit effect summands are pointwise bounded by a nonnegative sequence B n. If each summand is independent of the sum of summands outside its neighbourhood, and the two Stein negligibility limits hold — the design variance of the neighbourhood cross-term sum tends to 0 and the summed third-moment-type error term tends to 0 — then the studentized Horvitz–Thompson effect statistic converges in distribution to a standard normal.

Formal statement
Exp :
ℕ → Experiment
dk dl :
∀ n, (Exp n).Δ
N :
∀ n
if
(Exp n).ι
then
Finset ((Exp n).ι)
hVar :
∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))
hposk :
∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0
hposl :
∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0
B :
ℕ → ℝ
hB :
∀ n, 0 ≤ B n
hbound :
∀ n i z, |(Exp n).effSummand (dk n) (dl n) i z| ≤ B n
hindep :
∀ n i,
IndepFun ((Exp n).effSummand (dk n) (dl n) i) (fun z => ∑ j ∈ univ \ N n i, (Exp n).effSummand (dk n) (dl n) j z) (Exp n).D.toMeasure
herr1 :
Tendsto (fun n => (Exp n).D.Var (fun z => ∑ i, (Exp n).effSummand (dk n) (dl n) i z * ∑ j ∈ N n i, (Exp n).effSummand (dk n) (dl n) j z)) atTop (𝓝 0)
herr2 :
Tendsto (fun n => ∑ i, (Exp n).D.E (fun z => |(Exp n).effSummand (dk n) (dl n) i z| * (∑ j ∈ N n i, (Exp n).effSummand (dk n) (dl n) j z) ^ 2)) atTop (𝓝 0)
Proof (Lean source)
theorem localDependenceCLT_of_stein (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) (N : ∀ n, (Exp n).ι → Finset ((Exp n).ι)) (hVar : ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) (hposk : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0) (hposl : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0) (B : ℕ → ℝ) (hB : ∀ n, 0 ≤ B n) (hbound : ∀ n i z, |(Exp n).effSummand (dk n) (dl n) i z| ≤ B n) (hindep : ∀ n i, IndepFun ((Exp n).effSummand (dk n) (dl n) i) (fun z => ∑ j ∈ univ \ N n i, (Exp n).effSummand (dk n) (dl n) j z) (Exp n).D.toMeasure) (herr1 : Tendsto (fun n => (Exp n).D.Var (fun z => ∑ i, (Exp n).effSummand (dk n) (dl n) i z * ∑ j ∈ N n i, (Exp n).effSummand (dk n) (dl n) j z)) atTop (𝓝 0)) (herr2 : Tendsto (fun n => ∑ i, (Exp n).D.E (fun z => |(Exp n).effSummand (dk n) (dl n) i z| * (∑ j ∈ N n i, (Exp n).effSummand (dk n) (dl n) j z) ^ 2)) atTop (𝓝 0)) : LocalDependenceCLT Exp dk dl := by classical -- Abbreviations matching `stein_cdf_clt`. set μ : ∀ n, Measure (Exp n).Ω := fun n => (Exp n).D.toMeasure with hμ set X : ∀ n, (Exp n).ι → (Exp n).Ω → ℝ := fun n i => (Exp n).effSummand (dk n) (dl n) i with hX -- Each summand is measurable (the assignment space carries the top σ-algebra). have hmeas : ∀ n i, Measurable (X n i) := fun n i => measurable_from_top -- Mean-zero: `∫ Xₙᵢ ∂μₙ = D.E (effSummand) = 0`. have hmean : ∀ n i, ∫ z, X n i z ∂(μ n) = 0 := by intro n i rw [hμ, hX, FiniteDesign.integral_toMeasure, Experiment.E_effSummand] -- `depSum (Xₙ) = studentizedEffect`. have hdep : ∀ n, depSum (X n) = (Exp n).studentizedEffect (dk n) (dl n) := fun n => Experiment.depSum_effSummand _ _ _ (hposk n) (hposl n) -- Unit total variance: `∫ (depSum Xₙ)² ∂μₙ = 1`. have hvar : ∀ n, ∫ z, (depSum (X n) z) ^ 2 ∂(μ n) = 1 := by intro n rw [hdep n, hμ, FiniteDesign.integral_toMeasure, Experiment.E_studentizedEffect_sq _ _ _ (hVar n) (hposk n) (hposl n)] -- The two Stein error limits, transported through the measure bridge. have herr1' : Tendsto (fun n => variance (fun z => ∑ i, X n i z * nbhdSum (X n) (N n) i z) (μ n)) atTop (𝓝 0) := by refine herr1.congr (fun n => ?_) rw [hμ, FiniteDesign.variance_toMeasure] rfl have herr2' : Tendsto (fun n => ∑ i, ∫ z, |X n i z| * (nbhdSum (X n) (N n) i z) ^ 2 ∂(μ n)) atTop (𝓝 0) := by refine herr2.congr (fun n => ?_) refine Finset.sum_congr rfl (fun i _ => ?_) rw [hμ, FiniteDesign.integral_toMeasure] rfl -- Assemble the abstract Stein CLT, evaluated at each threshold. refine ⟨fun t => ?_⟩ have hclt := stein_cdf_clt μ X N hmeas B hB hbound hmean hindep hvar herr1' herr2' t -- Rewrite the limit point: `Φ(t) = (gaussianReal 0 1).real (Iic t)` by definition. rw [show stdNormalCdf t = (gaussianReal 0 1).real (Iic t) from rfl] -- Match the prelimit sequences pointwise. refine hclt.congr (fun n => ?_) -- `D.Pr {studentized ≤ t} = (μₙ.map (depSum Xₙ)).real (Iic t)`. have hWmeas : Measurable (depSum (X n)) := by rw [hdep n]; exact measurable_from_top have hset : {z | (Exp n).studentizedEffect (dk n) (dl n) z ≤ t} = (depSum (X n)) ⁻¹' Iic t := by rw [hdep n]; rfl rw [hμ] at * rw [← FiniteDesign.toMeasure_real_setOf, hset, MeasureTheory.map_measureReal_apply hWmeas measurableSet_Iic]
theorem wald_coverage_of_conditions reviewed
Causalean.Experimentation.ExposureMappingInterference

Oracle Wald coverage from bounded-degree primitive conditions. For a sequence of experiments and treatment contrasts, suppose the effect summands have a dependency graph with neighbourhood cardinality at most m, the effect-estimator variance is everywhere positive, both exposure propensities are nonzero, and the summands have nonnegative pointwise bounds such that the bounds tend to zero and population size times the cubed bounds tends to zero. If a nonnegative quantile has the required CDF value, then the oracle Wald interval has liminf coverage at least 1 − α.

Formal statement
Exp :
ℕ → Experiment
dk dl :
∀ n, (Exp n).Δ
Dg :
∀ n, DepGraph (fun i => (Exp n).effSummand (dk n) (dl n) i) (Exp n).D.toMeasure
m :
ℕ
hdeg :
∀ n i, ((Dg n).nbhd i).card ≤ m
hVar :
∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))
hposk :
∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0
hposl :
∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0
B :
ℕ → ℝ
hB :
∀ n, 0 ≤ B n
hbound :
∀ n i z, |(Exp n).effSummand (dk n) (dl n) i z| ≤ B n
hB0 :
Tendsto B atTop (𝓝 0)
hNB3 :
Tendsto (fun n => (card (Exp n).ι : ℝ) * (B n) ^ 3) atTop (𝓝 0)
α :
ℝ
zq :
ℝ
hzq0 :
0 ≤ zq
hzq :
stdNormalCdf zq = 1 - α / 2
1 - α
≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))))) atTop
Proof (Lean source)
theorem wald_coverage_of_conditions (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) (Dg : ∀ n, DepGraph (fun i => (Exp n).effSummand (dk n) (dl n) i) (Exp n).D.toMeasure) (m : ℕ) (hdeg : ∀ n i, ((Dg n).nbhd i).card ≤ m) (hVar : ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) (hposk : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0) (hposl : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0) (B : ℕ → ℝ) (hB : ∀ n, 0 ≤ B n) (hbound : ∀ n i z, |(Exp n).effSummand (dk n) (dl n) i z| ≤ B n) (hB0 : Tendsto B atTop (𝓝 0)) (hNB3 : Tendsto (fun n => (card (Exp n).ι : ℝ) * (B n) ^ 3) atTop (𝓝 0)) {α : ℝ} (zq : ℝ) (hzq0 : 0 ≤ zq) (hzq : stdNormalCdf zq = 1 - α / 2) : 1 - α ≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))))) atTop := wald_coverage Exp dk dl (localDependenceCLT_of_conditions Exp dk dl Dg m hdeg hVar hposk hposl B hB hbound hB0 hNB3) hVar zq hzq0 hzq
theorem localDependenceCLT_of_bounded_degree_scaled_variance reviewed
Causalean.Experimentation.ExposureMappingInterference

Local-dependence CLT from bounded degree and a positive scaled-variance limit. For a sequence of experiments and treatment contrasts, suppose the effect summands have a dependency graph of degree at most m, the dk outcomes are uniformly bounded and the dl outcomes are uniformly bounded, and the dk exposure propensities and the dl exposure propensities are bounded away from 0 by a positive constant c2. If the population size diverges, the effect-estimator variance is everywhere positive, and the scaled variance converges to positive cVar, then the studentized effect statistic obeys the local-dependence CLT.

Formal statement
Exp :
ℕ → Experiment
dk dl :
∀ n, (Exp n).Δ
Dg :
∀ n, DepGraph (fun i => (Exp n).effSummand (dk n) (dl n) i) (Exp n).D.toMeasure
m :
ℕ
hdeg :
∀ n i, ((Dg n).nbhd i).card ≤ m
c1 :
ℝ
hyk :
∀ n i, |(Exp n).y i (dk n)| ≤ c1
hyl :
∀ n i, |(Exp n).y i (dl n)| ≤ c1
c2 :
ℝ
hc2 :
0 < c2
hπk :
∀ n i, 1 / c2 ≤ prop (Exp n).D (Exp n).f (Exp n).θ i (dk n)
hπl :
∀ n i, 1 / c2 ≤ prop (Exp n).D (Exp n).f (Exp n).θ i (dl n)
hN :
Tendsto (fun n => (card (Exp n).ι : ℝ)) atTop atTop
hVar :
∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))
cVar :
ℝ
hcVar :
0 < cVar
hScaledVar :
Tendsto (fun n => (card (Exp n).ι : ℝ) * (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) atTop (𝓝 cVar)
Proof (Lean source)
theorem localDependenceCLT_of_bounded_degree_scaled_variance (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) (Dg : ∀ n, DepGraph (fun i => (Exp n).effSummand (dk n) (dl n) i) (Exp n).D.toMeasure) (m : ℕ) (hdeg : ∀ n i, ((Dg n).nbhd i).card ≤ m) (c1 : ℝ) (hyk : ∀ n i, |(Exp n).y i (dk n)| ≤ c1) (hyl : ∀ n i, |(Exp n).y i (dl n)| ≤ c1) (c2 : ℝ) (hc2 : 0 < c2) (hπk : ∀ n i, 1 / c2 ≤ prop (Exp n).D (Exp n).f (Exp n).θ i (dk n)) (hπl : ∀ n i, 1 / c2 ≤ prop (Exp n).D (Exp n).f (Exp n).θ i (dl n)) (hN : Tendsto (fun n => (card (Exp n).ι : ℝ)) atTop atTop) (hVar : ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) (cVar : ℝ) (hcVar : 0 < cVar) (hScaledVar : Tendsto (fun n => (card (Exp n).ι : ℝ) * (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) atTop (𝓝 cVar)) : LocalDependenceCLT Exp dk dl := by classical -- Abbreviations. set card : ℕ → ℝ := fun n => (card (Exp n).ι : ℝ) with hcard set Var : ℕ → ℝ := fun n => (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) with hVardef set σ : ℕ → ℝ := fun n => sqrt (Var n) with hσdef set B : ℕ → ℝ := fun n => 4 * c1 * c2 / (card n * σ n) with hBdef -- Basic positivity facts. have hcard_nonneg : ∀ n, 0 ≤ card n := fun n => by positivity have hσ_nonneg : ∀ n, 0 ≤ σ n := fun n => Real.sqrt_nonneg _ have hden_nonneg : ∀ n, 0 ≤ card n * σ n := fun n => mul_nonneg (hcard_nonneg n) (hσ_nonneg n) -- `0 ≤ c1` whenever the population is nonempty (an outcome witness exists). have hc1_of : ∀ n (i : (Exp n).ι), 0 ≤ c1 := fun n i => le_trans (abs_nonneg _) (hyk n i) -- `hposk`/`hposl`: positive propensities ⇒ nonzero. have hposk : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0 := by intro n i exact ne_of_gt (lt_of_lt_of_le (by positivity) (hπk n i)) have hposl : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0 := by intro n i exact ne_of_gt (lt_of_lt_of_le (by positivity) (hπl n i)) -- `hB`: `0 ≤ B n`. Nonempty population gives `c1 ≥ 0`; empty gives `card n = 0` so `B n = 0`. have hB : ∀ n, 0 ≤ B n := by intro n rcases isEmpty_or_nonempty (Exp n).ι with he | hne · have hc0 : card n = 0 := by rw [hcard]; simp [Fintype.card_eq_zero] simp [hBdef, hc0] · obtain ⟨i⟩ := hne exact div_nonneg (by have := hc1_of n i; positivity) (hden_nonneg n) -- `hbound`: each centered standardized summand is bounded by `B n`. have hbound : ∀ n i z, |(Exp n).effSummand (dk n) (dl n) i z| ≤ B n := by intro n i z have hraw : ∀ z', |(Exp n).effRaw (dk n) (dl n) i z'| ≤ 2 * c1 * c2 := fun z' => abs_effRaw_le (Exp n) (dk n) (dl n) i z' c1 (hyk n i) (hyl n i) c2 hc2 (hπk n i) (hπl n i) have hEraw : |(Exp n).D.E ((Exp n).effRaw (dk n) (dl n) i)| ≤ 2 * c1 * c2 := (Exp n).D.abs_E_le hraw have hnum : |(Exp n).effRaw (dk n) (dl n) i z - (Exp n).D.E ((Exp n).effRaw (dk n) (dl n) i)| ≤ 4 * c1 * c2 := by calc |(Exp n).effRaw (dk n) (dl n) i z - (Exp n).D.E ((Exp n).effRaw (dk n) (dl n) i)| ≤ |(Exp n).effRaw (dk n) (dl n) i z| + |(Exp n).D.E ((Exp n).effRaw (dk n) (dl n) i)| := abs_sub _ _ _ ≤ 2 * c1 * c2 + 2 * c1 * c2 := add_le_add (hraw z) hEraw _ = 4 * c1 * c2 := by ring change |((Exp n).effRaw (dk n) (dl n) i z - (Exp n).D.E ((Exp n).effRaw (dk n) (dl n) i)) / (card n * σ n)| ≤ 4 * c1 * c2 / (card n * σ n) rw [abs_div, abs_of_nonneg (hden_nonneg n)] gcongr -- `card n * σ n = √(card n ^ 2 * Var n)`: the denominator as one square root. have hdenom_sqrt : ∀ n, card n * σ n = sqrt (card n ^ 2 * Var n) := by intro n rw [hσdef, Real.sqrt_mul (by positivity), Real.sqrt_sq (hcard_nonneg n)] -- `card n ^ 2 * Var n → atTop` (from `card → ∞` and `card·Var → cVar > 0`). have hcard2Var : Tendsto (fun n => card n ^ 2 * Var n) atTop atTop := by have heq : (fun n => card n ^ 2 * Var n) = fun n => card n * (card n * Var n) := by funext n; ring rw [heq] exact hN.atTop_mul_pos hcVar hScaledVar -- `card n * σ n → atTop`. have hdenom_atTop : Tendsto (fun n => card n * σ n) atTop atTop := by have : (fun n => card n * σ n) = fun n => sqrt (card n ^ 2 * Var n) := funext hdenom_sqrt rw [this] exact Real.tendsto_sqrt_atTop.comp hcard2Var -- `hB0`: `B → 0`. have hB0 : Tendsto B atTop (𝓝 0) := hdenom_atTop.const_div_atTop (4 * c1 * c2) -- `card n * B n ^ 3 = (4 c1 c2)^3 / (card n ^ 2 * σ n ^ 3)`. have hNB3eq : ∀ n, card n * B n ^ 3 = (4 * c1 * c2) ^ 3 / (card n ^ 2 * σ n ^ 3) := by intro n by_cases hd : card n * σ n = 0 · -- degenerate: `card = 0` or `σ = 0`, both sides vanish. rcases mul_eq_zero.mp hd with hc0 | hs0 · simp [hBdef, hc0] · simp [hBdef, hs0] · rw [hBdef] field_simp -- `card n ^ 2 * σ n ^ 3 = (√(card n * Var n)) ^ 3 * √(card n)`. have hpow_sqrt : ∀ n, card n ^ 2 * σ n ^ 3 = (sqrt (card n * Var n)) ^ 3 * sqrt (card n) := by intro n rw [hσdef] rw [Real.sqrt_mul (hcard_nonneg n)] have hcs : sqrt (card n) ^ 2 = card n := Real.sq_sqrt (hcard_nonneg n) rw [mul_pow] ring_nf rw [show sqrt (card n) ^ 4 = (sqrt (card n) ^ 2) ^ 2 by ring, hcs] ring -- `card n ^ 2 * σ n ^ 3 → atTop`. have hpow_atTop : Tendsto (fun n => card n ^ 2 * σ n ^ 3) atTop atTop := by have heq : (fun n => card n ^ 2 * σ n ^ 3) = fun n => (sqrt (card n * Var n)) ^ 3 * sqrt (card n) := funext hpow_sqrt rw [heq] have hsqrtcardVar : Tendsto (fun n => sqrt (card n * Var n)) atTop (𝓝 (sqrt cVar)) := (Real.continuous_sqrt.tendsto cVar).comp hScaledVar have hcube : Tendsto (fun n => (sqrt (card n * Var n)) ^ 3) atTop (𝓝 ((sqrt cVar) ^ 3)) := hsqrtcardVar.pow 3 have hcubepos : 0 < (sqrt cVar) ^ 3 := by positivity have hsqrtcard : Tendsto (fun n => sqrt (card n)) atTop atTop := Real.tendsto_sqrt_atTop.comp hN exact hcube.pos_mul_atTop hcubepos hsqrtcard -- `hNB3`: `card · B³ → 0`. have hNB3 : Tendsto (fun n => card n * B n ^ 3) atTop (𝓝 0) := by have heq : (fun n => card n * B n ^ 3) = fun n => (4 * c1 * c2) ^ 3 / (card n ^ 2 * σ n ^ 3) := funext hNB3eq rw [heq] exact hpow_atTop.const_div_atTop ((4 * c1 * c2) ^ 3) -- Assemble. exact localDependenceCLT_of_conditions Exp dk dl Dg m hdeg hVar hposk hposl B hB hbound hB0 hNB3
4 supporting declarations (lemmas, instances)
  • instMeasurableSpaceΩ instance — For every exposure-mapping experiment, the measurable structure on its finite assignment space is the top σ-algebra, under which every subset is measurable.
    instMeasurableSpaceΩ E :
    ⊤
    Causalean.Experimentation.ExposureMappingInterference.Experiment.instMeasurableSpaceΩ · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/SteinInstance.lean:176
  • instMeasurableSingletonΩ instance — For every exposure-mapping experiment, every singleton subset of its assignment space is measurable under the experiment's measurable structure.
    instMeasurableSingletonΩ E :
    ⟨fun _ => trivial⟩
    Causalean.Experimentation.ExposureMappingInterference.Experiment.instMeasurableSingletonΩ · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/SteinInstance.lean:183
  • wald_coverage_of_stein theorem — Oracle Wald coverage from primitive Stein-discharge conditions. For a sequence of experiments and treatment contrasts, choose dependency neighbourhoods. Suppose the effect-estimator variance is everywhere positive, both exposure propensities are nonzero, and the summands have nonnegative pointwise bounds. If each summand is independent of the outside-neighbourhood sum, both Stein error terms tend to zero, and a nonnegative quantile has the required CDF value, then the oracle Wald interval has liminf coverage at least 1 − α.
    Exp :
    ℕ → Experiment
    dk dl :
    ∀ n, (Exp n).Δ
    N :
    ∀ n
    if
    (Exp n).ι
    then
    Finset ((Exp n).ι)
    hVar :
    ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))
    hposk :
    ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0
    hposl :
    ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0
    B :
    ℕ → ℝ
    hB :
    ∀ n, 0 ≤ B n
    hbound :
    ∀ n i z, |(Exp n).effSummand (dk n) (dl n) i z| ≤ B n
    hindep :
    ∀ n i,
    IndepFun ((Exp n).effSummand (dk n) (dl n) i) (fun z => ∑ j ∈ univ \ N n i, (Exp n).effSummand (dk n) (dl n) j z) (Exp n).D.toMeasure
    herr1 :
    Tendsto (fun n => (Exp n).D.Var (fun z => ∑ i, (Exp n).effSummand (dk n) (dl n) i z * ∑ j ∈ N n i, (Exp n).effSummand (dk n) (dl n) j z)) atTop (𝓝 0)
    herr2 :
    Tendsto (fun n => ∑ i, (Exp n).D.E (fun z => |(Exp n).effSummand (dk n) (dl n) i z| * (∑ j ∈ N n i, (Exp n).effSummand (dk n) (dl n) j z) ^ 2)) atTop (𝓝 0)
    α :
    ℝ
    zq :
    ℝ
    hzq0 :
    0 ≤ zq
    hzq :
    stdNormalCdf zq = 1 - α / 2
    1 - α
    ≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))))) atTop
    Proof (Lean source)
    theorem wald_coverage_of_stein (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) (N : ∀ n, (Exp n).ι → Finset ((Exp n).ι)) (hVar : ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) (hposk : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0) (hposl : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0) (B : ℕ → ℝ) (hB : ∀ n, 0 ≤ B n) (hbound : ∀ n i z, |(Exp n).effSummand (dk n) (dl n) i z| ≤ B n) (hindep : ∀ n i, IndepFun ((Exp n).effSummand (dk n) (dl n) i) (fun z => ∑ j ∈ univ \ N n i, (Exp n).effSummand (dk n) (dl n) j z) (Exp n).D.toMeasure) (herr1 : Tendsto (fun n => (Exp n).D.Var (fun z => ∑ i, (Exp n).effSummand (dk n) (dl n) i z * ∑ j ∈ N n i, (Exp n).effSummand (dk n) (dl n) j z)) atTop (𝓝 0)) (herr2 : Tendsto (fun n => ∑ i, (Exp n).D.E (fun z => |(Exp n).effSummand (dk n) (dl n) i z| * (∑ j ∈ N n i, (Exp n).effSummand (dk n) (dl n) j z) ^ 2)) atTop (𝓝 0)) {α : ℝ} (zq : ℝ) (hzq0 : 0 ≤ zq) (hzq : stdNormalCdf zq = 1 - α / 2) : 1 - α ≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))))) atTop := wald_coverage Exp dk dl (localDependenceCLT_of_stein Exp dk dl N hVar hposk hposl B hB hbound hindep herr1 herr2) hVar zq hzq0 hzq
    Causalean.Experimentation.ExposureMappingInterference.wald_coverage_of_stein · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/SteinInstance.lean:273
  • localDependenceCLT_of_conditions theorem — Local-dependence CLT from a bounded-degree dependency graph. For a sequence of experiments and treatment contrasts, suppose the effect summands have a dependency graph with neighbourhood cardinality at most m, the effect-estimator variance is everywhere positive, both exposure propensities are nonzero, and the summands have nonnegative pointwise bounds such that the bounds tend to zero and population size times the cubed bounds tends to zero. Then the studentized effect statistic satisfies the local-dependence CLT.
    Exp :
    ℕ → Experiment
    dk dl :
    ∀ n, (Exp n).Δ
    Dg :
    ∀ n, DepGraph (fun i => (Exp n).effSummand (dk n) (dl n) i) (Exp n).D.toMeasure
    m :
    ℕ
    hdeg :
    ∀ n i, ((Dg n).nbhd i).card ≤ m
    hVar :
    ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))
    hposk :
    ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0
    hposl :
    ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0
    B :
    ℕ → ℝ
    hB :
    ∀ n, 0 ≤ B n
    hbound :
    ∀ n i z, |(Exp n).effSummand (dk n) (dl n) i z| ≤ B n
    hB0 :
    Tendsto B atTop (𝓝 0)
    hNB3 :
    Tendsto (fun n => (card (Exp n).ι : ℝ) * (B n) ^ 3) atTop (𝓝 0)
    Proof (Lean source)
    theorem localDependenceCLT_of_conditions (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) (Dg : ∀ n, DepGraph (fun i => (Exp n).effSummand (dk n) (dl n) i) (Exp n).D.toMeasure) (m : ℕ) (hdeg : ∀ n i, ((Dg n).nbhd i).card ≤ m) (hVar : ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) (hposk : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0) (hposl : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0) (B : ℕ → ℝ) (hB : ∀ n, 0 ≤ B n) (hbound : ∀ n i z, |(Exp n).effSummand (dk n) (dl n) i z| ≤ B n) (hB0 : Tendsto B atTop (𝓝 0)) (hNB3 : Tendsto (fun n => (card (Exp n).ι : ℝ) * (B n) ^ 3) atTop (𝓝 0)) : LocalDependenceCLT Exp dk dl := by classical -- Abbreviations matching `stein_cdf_clt_of_depGraph`. set μ : ∀ n, Measure (Exp n).Ω := fun n => (Exp n).D.toMeasure with hμ set X : ∀ n, (Exp n).ι → (Exp n).Ω → ℝ := fun n i => (Exp n).effSummand (dk n) (dl n) i with hX -- Each summand is measurable (the assignment space carries the top σ-algebra). have hmeas : ∀ n i, Measurable (X n i) := fun n i => measurable_from_top -- Mean-zero: `∫ Xₙᵢ ∂μₙ = D.E (effSummand) = 0`. have hmean : ∀ n i, ∫ z, X n i z ∂(μ n) = 0 := by intro n i rw [hμ, hX, FiniteDesign.integral_toMeasure, Experiment.E_effSummand] -- `depSum (Xₙ) = studentizedEffect`. have hdep : ∀ n, depSum (X n) = (Exp n).studentizedEffect (dk n) (dl n) := fun n => Experiment.depSum_effSummand _ _ _ (hposk n) (hposl n) -- Unit total variance: `∫ (depSum Xₙ)² ∂μₙ = 1`. have hvar : ∀ n, ∫ z, (depSum (X n) z) ^ 2 ∂(μ n) = 1 := by intro n rw [hdep n, hμ, FiniteDesign.integral_toMeasure, Experiment.E_studentizedEffect_sq _ _ _ (hVar n) (hposk n) (hposl n)] -- Assemble the dependency-graph Stein CLT (negligibility derived internally), at each threshold. refine ⟨fun t => ?_⟩ have hclt := stein_cdf_clt_of_depGraph μ X Dg m hdeg B hB hbound hB0 hNB3 hmean hvar t -- Rewrite the limit point: `Φ(t) = (gaussianReal 0 1).real (Iic t)` by definition. rw [show stdNormalCdf t = (gaussianReal 0 1).real (Iic t) from rfl] -- Match the prelimit sequences pointwise. refine hclt.congr (fun n => ?_) -- `D.Pr {studentized ≤ t} = (μₙ.map (depSum Xₙ)).real (Iic t)`. have hWmeas : Measurable (depSum (X n)) := by rw [hdep n]; exact measurable_from_top have hset : {z | (Exp n).studentizedEffect (dk n) (dl n) z ≤ t} = (depSum (X n)) ⁻¹' Iic t := by rw [hdep n]; rfl rw [hμ] at * rw [← FiniteDesign.toMeasure_real_setOf, hset, MeasureTheory.map_measureReal_apply hWmeas measurableSet_Iic]
    Causalean.Experimentation.ExposureMappingInterference.localDependenceCLT_of_conditions · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/SteinInstance.lean:317
Var­Est­Quad­Bound 9 core · 3 supporting The feasible Wald-coverage theorem reduces, via relVar_of_NsqVar_tendsto, to Var[N·V̂] → 0. ★ var_htEdgeStat_le

Finite-grid variance bound for the conservative variance estimator

The feasible Wald-coverage theorem reduces, via relVar_of_NsqVar_tendsto, to Var[N·V̂] → 0. This file establishes the per-population core of that limit, the appendix quadruple-sum bound

Var[ V̂_raw ] ≤ 8·M²·m³·N, V̂_raw = ŷVar(dk) + ŷVar(dl) − 2·Ĉov,

where V̂ = N⁻²·V̂_raw (so Var[N·V̂] = N⁻²·Var[V̂_raw] ≤ 8M²m³/N). The estimator V̂_raw is rewritten as a single edge-sum ∑_{i,j} vb i j over ordered pairs (diagonal i=j folds in the three single-index sums; off-diagonal folds the three pairwise sums), and the abstract var_edge_sum_le is applied with:

* boundedness |vb i j z| ≤ M from the bounded outcomes and inverse propensities in Aronow–Samii's Condition 3, plus an explicit additional joint-overlap bound 1/π_{ij} ≤ c₃ on all ordered pairs; * off-edge vanishing vb i j = 0 for non-adjacent i ≠ j, since then the exposures are independent and the centered-cross factors π_{ij} − π_iπ_j = Cov[1ᵢ,1ⱼ] vanish; * edge-covariance vanishing Cov[vb i j, vb k l] = 0 for graph-unlinked edge pairs.

The last two assumptions are explicit factorization and covariance conditions for this finite-grid argument. Together with bounded degree, they are an alternative sufficient-condition route toward the variance consistency used in the paper's Proposition 6.2, not a formalization of its exact Conditions 3, 5, and 6.

def diagVar reviewed
Causalean.Experimentation.ExposureMappingInterference

For a finite assignment space, a finite unit population, a unit-trait space, an exposure space, a randomization design, exposure-indexed potential outcomes, an exposure mapping, unit traits, an exposure level, a unit, and an assignment, the diagonal variance summand is the observed exposure indicator times one minus that unit's exposure probability times the square of its inverse-propensity-weighted observed outcome.

Definition (Lean source)
Ω :
Type u_1
shared
ι :
Type u_2
shared
Θ :
Type u_3
shared
Δ :
Type u_4
shared
D :
y :
ι → Δ → ℝ
f :
Ω → Θ → Δ
θ :
ι → Θ
d :
Δ
i :
ι
z :
Ω
diagVar D y f θ d i z :
ℝ
expoInd f θ i d z * (1 - prop D f θ i d) * (Yobs y f θ i z / prop D f θ i d) ^ 2
Causalean.Experimentation.ExposureMappingInterference.diagVar · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/VarEstQuadBound.lean:53 · uses FiniteDesign
def offVar reviewed
Causalean.Experimentation.ExposureMappingInterference

For a finite assignment space, a finite unit population, a unit-trait space, an exposure space, a randomization design, exposure-indexed potential outcomes, an exposure mapping, unit traits, an exposure level, two units, and an assignment, the off-diagonal variance summand is the product of their observed exposure indicators, their centered joint-exposure probability divided by their joint-exposure probability, and their two inverse-propensity-weighted observed outcomes.

Definition (Lean source)
Ω :
Type u_1
shared
ι :
Type u_2
shared
Θ :
Type u_3
shared
Δ :
Type u_4
shared
D :
y :
ι → Δ → ℝ
f :
Ω → Θ → Δ
θ :
ι → Θ
d :
Δ
i j :
ι
z :
Ω
offVar D y f θ d i j z :
ℝ
expoInd f θ i d z * expoInd f θ j d z * ((propPairSame D f θ i j d - prop D f θ i d * prop D f θ j d) / propPairSame D f θ i j d) * (Yobs y f θ i z / prop D f θ i d * (Yobs y f θ j z / prop D f θ j d))
Causalean.Experimentation.ExposureMappingInterference.offVar · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/VarEstQuadBound.lean:63 · uses FiniteDesign
def offCov reviewed
Causalean.Experimentation.ExposureMappingInterference

For a finite assignment space, a finite unit population, a unit-trait space, an exposure space, a randomization design, exposure-indexed potential outcomes, an exposure mapping, unit traits, two exposure levels, two units, and an assignment, the off-diagonal covariance summand is the product of the corresponding two exposure indicators, their centered cross-exposure probability divided by their cross-exposure probability, and their two inverse-propensity-weighted observed outcomes.

Definition (Lean source)
Ω :
Type u_1
shared
ι :
Type u_2
shared
Θ :
Type u_3
shared
Δ :
Type u_4
shared
D :
y :
ι → Δ → ℝ
f :
Ω → Θ → Δ
θ :
ι → Θ
dk dl :
Δ
i j :
ι
z :
Ω
offCov D y f θ dk dl i j z :
ℝ
expoInd f θ i dk z * expoInd f θ j dl z * ((propPairCross D f θ i j dk dl - prop D f θ i dk * prop D f θ j dl) / propPairCross D f θ i j dk dl) * (Yobs y f θ i z / prop D f θ i dk * (Yobs y f θ j z / prop D f θ j dl))
Causalean.Experimentation.ExposureMappingInterference.offCov · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/VarEstQuadBound.lean:76 · uses FiniteDesign
def diagCov reviewed
Causalean.Experimentation.ExposureMappingInterference

For a finite assignment space, a finite unit population, a unit-trait space, an exposure space, a randomization design, exposure-indexed potential outcomes, an exposure mapping, unit traits, two exposure levels, a unit, and an assignment, the diagonal covariance correction summand is one half of the inverse-propensity-weighted squared observed outcome for each target exposure, added together.

Definition (Lean source)
Ω :
Type u_1
shared
ι :
Type u_2
shared
Θ :
Type u_3
shared
Δ :
Type u_4
shared
D :
y :
ι → Δ → ℝ
f :
Ω → Θ → Δ
θ :
ι → Θ
dk dl :
Δ
i :
ι
z :
Ω
diagCov D y f θ dk dl i z :
ℝ
expoInd f θ i dk z * (Yobs y f θ i z) ^ 2 / (2 * prop D f θ i dk)
+ expoInd f θ i dl z * (Yobs y f θ i z) ^ 2 / (2 * prop D f θ i dl)
Causalean.Experimentation.ExposureMappingInterference.diagCov · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/VarEstQuadBound.lean:90 · uses FiniteDesign
def vbDiag reviewed
Causalean.Experimentation.ExposureMappingInterference

For a finite assignment space, a finite unit population, a unit-trait space, an exposure space, a randomization design, exposure-indexed potential outcomes, an exposure mapping, unit traits, two exposure levels, a unit, and an assignment, the diagonal edge term is the sum of the two diagonal variance summands plus twice the diagonal covariance correction.

Definition (Lean source)
Ω :
Type u_1
shared
ι :
Type u_2
shared
Θ :
Type u_3
shared
Δ :
Type u_4
shared
D :
y :
ι → Δ → ℝ
f :
Ω → Θ → Δ
θ :
ι → Θ
dk dl :
Δ
i :
ι
z :
Ω
vbDiag D y f θ dk dl i z :
ℝ
diagVar D y f θ dk i z + diagVar D y f θ dl i z + 2 * diagCov D y f θ dk dl i z
Causalean.Experimentation.ExposureMappingInterference.vbDiag · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/VarEstQuadBound.lean:101 · uses FiniteDesign
def vbOff reviewed
Causalean.Experimentation.ExposureMappingInterference

For a finite assignment space, a finite unit population, a unit-trait space, an exposure space, a randomization design, exposure-indexed potential outcomes, an exposure mapping, unit traits, two exposure levels, two units, and an assignment, the off-diagonal edge term is the sum of the two off-diagonal variance summands minus twice the off-diagonal covariance summand.

Definition (Lean source)
Ω :
Type u_1
shared
ι :
Type u_2
shared
Θ :
Type u_3
shared
Δ :
Type u_4
shared
D :
y :
ι → Δ → ℝ
f :
Ω → Θ → Δ
θ :
ι → Θ
dk dl :
Δ
i j :
ι
z :
Ω
vbOff D y f θ dk dl i j z :
ℝ
offVar D y f θ dk i j z + offVar D y f θ dl i j z - 2 * offCov D y f θ dk dl i j z
def vb reviewed
Causalean.Experimentation.ExposureMappingInterference

For a finite assignment space, a finite unit population, a unit-trait space, an exposure space, a randomization design, exposure-indexed potential outcomes, an exposure mapping, unit traits, two exposure levels, two units, and an assignment, the edge function for the unscaled effect-variance estimator equals the diagonal edge term when the two units coincide and the off-diagonal edge term otherwise.

Definition (Lean source)
Ω :
Type u_1
shared
ι :
Type u_2
shared
Θ :
Type u_3
shared
Δ :
Type u_4
shared
D :
y :
ι → Δ → ℝ
f :
Ω → Θ → Δ
θ :
ι → Θ
dk dl :
Δ
i j :
ι
z :
Ω
vb D y f θ dk dl i j z :
ℝ
if i = j then vbDiag D y f θ dk dl i z else vbOff D y f θ dk dl i j z
def vbBound reviewed
Causalean.Experimentation.ExposureMappingInterference

For three real constants, the edge-function bound is 4(1+c3)c12(c22+c2)4(1+c_3)c_1^2(c_2^2+c_2).

Definition (Lean source)
c₁ c₂ c₃ :
ℝ
vbBound c₁ c₂ c₃ :
ℝ
4 * (1 + c₃) * c₁ ^ 2 * (c₂ ^ 2 + c₂)
Causalean.Experimentation.ExposureMappingInterference.vbBound · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/VarEstQuadBound.lean:131
theorem var_htEdgeStat_le reviewed
Causalean.Experimentation.ExposureMappingInterference

Finite-grid per-population quadruple-sum bound. For a finite design, potential outcomes, exposure mapping, and unit traits, suppose the two treatment arms are distinct and outcomes are uniformly bounded by a nonnegative constant c₁. Suppose the marginal exposure propensities under each arm are positive with inverses uniformly bounded by a nonnegative constant c₂, and the same-arm and cross-arm joint exposure propensities have inverses uniformly bounded by a nonnegative constant c₃. Suppose further a symmetric, reflexive dependency relation G of degree at most m makes every non-adjacent pair's joint exposure propensities factor as if independent and ensures graph-unlinked kernel terms have zero covariance. Then the raw estimator variance is at most 8·(vbBound c₁ c₂ c₃)²·m³·N.

Formal statement
Ω :
Type u_1
shared
ι :
Type u_2
shared
Θ :
Type u_3
shared
Δ :
Type u_4
shared
D :
y :
ι → Δ → ℝ
f :
Ω → Θ → Δ
θ :
ι → Θ
dk dl :
Δ
hne :
dk ≠ dl
c₁ c₂ c₃ :
ℝ
hc₁ :
0 ≤ c₁
hc₂ :
0 ≤ c₂
hc₃ :
0 ≤ c₃
hy :
∀ i d, |y i d| ≤ c₁
hπk :
∀ i, 0 < prop D f θ i dk
hπl :
∀ i, 0 < prop D f θ i dl
hπinvk :
∀ i, 1 / prop D f θ i dk ≤ c₂
hπinvl :
∀ i, 1 / prop D f θ i dl ≤ c₂
hjk :
∀ i j, 1 / propPairSame D f θ i j dk ≤ c₃
hjl :
∀ i j, 1 / propPairSame D f θ i j dl ≤ c₃
hjc :
∀ i j, 1 / propPairCross D f θ i j dk dl ≤ c₃
G :
ι → ι → Prop
hrefl :
∀ i, G i i
hsymm :
∀ i j
if
G i j
then
G j i
m :
ℕ
hdeg :
∀ i, (Finset.univ.filter (fun j => G i j)).card ≤ m
hGindep :
∀ i j
if
¬ G i j
then
propPairSame D f θ i j dk = prop D f θ i dk * prop D f θ j dk ∧
propPairSame D f θ i j dl = prop D f θ i dl * prop D f θ j dl ∧
propPairCross D f θ i j dk dl = prop D f θ i dk * prop D f θ j dl
hcov0 :
∀ i j k l
if
¬ (G i k ∨ G i l ∨ G j k ∨ G j l)
then
D.Cov (vb D y f θ dk dl i j) (vb D y f θ dk dl k l) = 0
D.Var (fun z => htVarEst D y f θ dk z + htVarEst D y f θ dl z - 2 * htCovEst D y f θ dk dl z)
≤ 8 * vbBound c₁ c₂ c₃ ^ 2 * ((m : ℝ) ^ 3 * (Fintype.card ι : ℝ))
Proof (Lean source)
theorem var_htEdgeStat_le (D : FiniteDesign Ω) (y : ι → Δ → ℝ) (f : Ω → Θ → Δ) (θ : ι → Θ) (dk dl : Δ) (hne : dk ≠ dl) {c₁ c₂ c₃ : ℝ} (hc₁ : 0 ≤ c₁) (hc₂ : 0 ≤ c₂) (hc₃ : 0 ≤ c₃) (hy : ∀ i d, |y i d| ≤ c₁) (hπk : ∀ i, 0 < prop D f θ i dk) (hπl : ∀ i, 0 < prop D f θ i dl) (hπinvk : ∀ i, 1 / prop D f θ i dk ≤ c₂) (hπinvl : ∀ i, 1 / prop D f θ i dl ≤ c₂) (hjk : ∀ i j, 1 / propPairSame D f θ i j dk ≤ c₃) (hjl : ∀ i j, 1 / propPairSame D f θ i j dl ≤ c₃) (hjc : ∀ i j, 1 / propPairCross D f θ i j dk dl ≤ c₃) (G : ι → ι → Prop) [DecidableRel G] (hrefl : ∀ i, G i i) (hsymm : ∀ i j, G i j → G j i) {m : ℕ} (hdeg : ∀ i, (Finset.univ.filter (fun j => G i j)).card ≤ m) (hGindep : ∀ i j, ¬ G i j → propPairSame D f θ i j dk = prop D f θ i dk * prop D f θ j dk ∧ propPairSame D f θ i j dl = prop D f θ i dl * prop D f θ j dl ∧ propPairCross D f θ i j dk dl = prop D f θ i dk * prop D f θ j dl) (hcov0 : ∀ i j k l, ¬ (G i k ∨ G i l ∨ G j k ∨ G j l) → D.Cov (vb D y f θ dk dl i j) (vb D y f θ dk dl k l) = 0) : D.Var (fun z => htVarEst D y f θ dk z + htVarEst D y f θ dl z - 2 * htCovEst D y f θ dk dl z) ≤ 8 * vbBound c₁ c₂ c₃ ^ 2 * ((m : ℝ) ^ 3 * (Fintype.card ι : ℝ)) := by rw [htVarEst_add_sub_eq_edgeSum] have hMnn : 0 ≤ vbBound c₁ c₂ c₃ := by unfold vbBound exact mul_nonneg (mul_nonneg (mul_nonneg (by norm_num) (by linarith)) (sq_nonneg c₁)) (add_nonneg (sq_nonneg c₂) hc₂) refine D.var_edge_sum_le (vb D y f θ dk dl) G hMnn ?_ hsymm hdeg ?_ hcov0 · exact fun i j _ z => abs_vb_le D y f θ dk dl hne hc₁ hc₂ hc₃ hy hπk hπl hπinvk hπinvl hjk hjl hjc i j z · intro i j hGij rcases eq_or_ne i j with rfl | hij · exact absurd (hrefl i) hGij · obtain ⟨hsk, hsl, hc⟩ := hGindep i j hGij exact vb_eq_zero_of_indep D y f θ dk dl i j hij hsk hsl hc
3 supporting declarations (lemmas, instances)
  • htVarEst_add_sub_eq_edgeSum theorem — Edge-sum identity. V̂_raw = ∑_{i,j} vb i j: the three single-index sums of ŷVar(dk), ŷVar(dl), Ĉov fold into the diagonal i = j, and the three pairwise sums into the off-diagonal i ≠ j.
    Ω :
    Type u_1
    shared
    ι :
    Type u_2
    shared
    Θ :
    Type u_3
    shared
    Δ :
    Type u_4
    shared
    D :
    y :
    ι → Δ → ℝ
    f :
    Ω → Θ → Δ
    θ :
    ι → Θ
    dk dl :
    Δ
    (fun z => htVarEst D y f θ dk z + htVarEst D y f θ dl z - 2 * htCovEst D y f θ dk dl z)
    = (fun z => ∑ i, ∑ j, vb D y f θ dk dl i j z)
    Proof (Lean source)
    theorem htVarEst_add_sub_eq_edgeSum (D : FiniteDesign Ω) (y : ι → Δ → ℝ) (f : Ω → Θ → Δ) (θ : ι → Θ) (dk dl : Δ) : (fun z => htVarEst D y f θ dk z + htVarEst D y f θ dl z - 2 * htCovEst D y f θ dk dl z) = (fun z => ∑ i, ∑ j, vb D y f θ dk dl i j z) := by funext z -- Split each inner edge-sum into the diagonal term (`i = j`) plus the off-diagonal remainder. have hRHS : (∑ i, ∑ j, vb D y f θ dk dl i j z) = (∑ i, vbDiag D y f θ dk dl i z) + (∑ i, ∑ j ∈ Finset.univ.erase i, vbOff D y f θ dk dl i j z) := by rw [← Finset.sum_add_distrib] refine Finset.sum_congr rfl (fun i _ => ?_) rw [← Finset.add_sum_erase univ (fun j => vb D y f θ dk dl i j z) (mem_univ i)] congr 1 · rw [vb, if_pos rfl] · refine Finset.sum_congr rfl (fun j hj => ?_) rw [vb, if_neg ((Finset.mem_erase.mp hj).1).symm] rw [hRHS] unfold htVarEst htCovEst vbDiag vbOff diagVar offVar offCov diagCov simp only [Finset.sum_add_distrib, Finset.sum_sub_distrib, ← Finset.mul_sum] ring
    Causalean.Experimentation.ExposureMappingInterference.htVarEst_add_sub_eq_edgeSum · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/VarEstQuadBound.lean:141
  • abs_vb_le theorem — Boundedness of the edge function. For a finite design, potential outcomes, exposure mapping, and unit traits, two distinct exposure levels, nonnegative bounds, bounded outcomes, positive marginal propensities, bounded marginal inverse propensities, bounded joint inverse propensities, two units, and an assignment, |vb i j z| ≤ vbBound c₁ c₂ c₃.
    Ω :
    Type u_1
    shared
    ι :
    Type u_2
    shared
    Θ :
    Type u_3
    shared
    Δ :
    Type u_4
    shared
    D :
    y :
    ι → Δ → ℝ
    f :
    Ω → Θ → Δ
    θ :
    ι → Θ
    dk dl :
    Δ
    _hne :
    dk ≠ dl
    c₁ c₂ c₃ :
    ℝ
    _hc₁ :
    0 ≤ c₁
    hc₂ :
    0 ≤ c₂
    hc₃ :
    0 ≤ c₃
    hy :
    ∀ i d, |y i d| ≤ c₁
    hπk :
    ∀ i, 0 < prop D f θ i dk
    hπl :
    ∀ i, 0 < prop D f θ i dl
    hπinvk :
    ∀ i, 1 / prop D f θ i dk ≤ c₂
    hπinvl :
    ∀ i, 1 / prop D f θ i dl ≤ c₂
    hjk :
    ∀ i j, 1 / propPairSame D f θ i j dk ≤ c₃
    hjl :
    ∀ i j, 1 / propPairSame D f θ i j dl ≤ c₃
    hjc :
    ∀ i j, 1 / propPairCross D f θ i j dk dl ≤ c₃
    i j :
    ι
    z :
    Ω
    |vb D y f θ dk dl i j z| ≤ vbBound c₁ c₂ c₃
    Proof (Lean source)
    theorem abs_vb_le (D : FiniteDesign Ω) (y : ι → Δ → ℝ) (f : Ω → Θ → Δ) (θ : ι → Θ) (dk dl : Δ) (_hne : dk ≠ dl) {c₁ c₂ c₃ : ℝ} (_hc₁ : 0 ≤ c₁) (hc₂ : 0 ≤ c₂) (hc₃ : 0 ≤ c₃) (hy : ∀ i d, |y i d| ≤ c₁) (hπk : ∀ i, 0 < prop D f θ i dk) (hπl : ∀ i, 0 < prop D f θ i dl) (hπinvk : ∀ i, 1 / prop D f θ i dk ≤ c₂) (hπinvl : ∀ i, 1 / prop D f θ i dl ≤ c₂) (hjk : ∀ i j, 1 / propPairSame D f θ i j dk ≤ c₃) (hjl : ∀ i j, 1 / propPairSame D f θ i j dl ≤ c₃) (hjc : ∀ i j, 1 / propPairCross D f θ i j dk dl ≤ c₃) (i j : ι) (z : Ω) : |vb D y f θ dk dl i j z| ≤ vbBound c₁ c₂ c₃ := by -- Marginal propensities are at most `1` (used to bound `1 - π` and `πᵢ·πⱼ`). have hπk1 : ∀ a, prop D f θ a dk ≤ 1 := fun a => (prop_mem_unit D f θ a dk).2 have hπl1 : ∀ a, prop D f θ a dl ≤ 1 := fun a => (prop_mem_unit D f θ a dl).2 unfold vb split_ifs with hij · -- Diagonal case `i = j`. unfold vbDiag have hbk := abs_diagVar_le D y f θ dk i z hy (hπk i) (hπk1 i) (hπinvk i) have hbl := abs_diagVar_le D y f θ dl i z hy (hπl i) (hπl1 i) (hπinvl i) have hbc := abs_diagCov_le D y f θ dk dl i z hy (hπk i) (hπl i) (hπinvk i) (hπinvl i) have htri : |diagVar D y f θ dk i z + diagVar D y f θ dl i z + 2 * diagCov D y f θ dk dl i z| ≤ |diagVar D y f θ dk i z| + |diagVar D y f θ dl i z| + 2 * |diagCov D y f θ dk dl i z| := by refine le_trans (abs_add_le _ _) ?_ gcongr · exact abs_add_le _ _ · rw [abs_mul]; simp refine le_trans htri ?_ -- `c₁²c₂² + c₁²c₂² + 2·(2c₁²c₂) = 2c₁²c₂² + 4c₁²c₂ ≤ vbBound`. have hsum : |diagVar D y f θ dk i z| + |diagVar D y f θ dl i z| + 2 * |diagCov D y f θ dk dl i z| ≤ c₁ ^ 2 * c₂ ^ 2 + c₁ ^ 2 * c₂ ^ 2 + 2 * (2 * c₁ ^ 2 * c₂) := by gcongr refine le_trans hsum ?_ unfold vbBound nlinarith [sq_nonneg c₁, hc₂, hc₃, mul_nonneg (sq_nonneg c₁) hc₂, mul_nonneg (mul_nonneg (sq_nonneg c₁) hc₂) hc₃, mul_nonneg (mul_nonneg (sq_nonneg c₁) hc₂) hc₂, mul_nonneg (mul_nonneg (mul_nonneg (sq_nonneg c₁) hc₂) hc₂) hc₃] · -- Off-diagonal case `i ≠ j`. unfold vbOff have hvk := abs_offVar_le D y f θ dk i j z hc₃ hy (hπk i) (hπk j) (hπk1 i) (hπk1 j) (hπinvk i) (hπinvk j) (hjk i j) have hvl := abs_offVar_le D y f θ dl i j z hc₃ hy (hπl i) (hπl j) (hπl1 i) (hπl1 j) (hπinvl i) (hπinvl j) (hjl i j) have hcv := abs_offCov_le D y f θ dk dl i j z hc₃ hy (hπk i) (hπl j) (hπk1 i) (hπl1 j) (hπinvk i) (hπinvl j) (hjc i j) have htri : |offVar D y f θ dk i j z + offVar D y f θ dl i j z - 2 * offCov D y f θ dk dl i j z| ≤ |offVar D y f θ dk i j z| + |offVar D y f θ dl i j z| + 2 * |offCov D y f θ dk dl i j z| := by refine le_trans (abs_sub _ _) ?_ gcongr · exact abs_add_le _ _ · rw [abs_mul]; simp refine le_trans htri ?_ have hsum : |offVar D y f θ dk i j z| + |offVar D y f θ dl i j z| + 2 * |offCov D y f θ dk dl i j z| ≤ (1 + c₃) * c₁ ^ 2 * c₂ ^ 2 + (1 + c₃) * c₁ ^ 2 * c₂ ^ 2 + 2 * ((1 + c₃) * c₁ ^ 2 * c₂ ^ 2) := by gcongr refine le_trans hsum ?_ unfold vbBound nlinarith [sq_nonneg c₁, hc₂, hc₃, mul_nonneg (sq_nonneg c₁) hc₂, mul_nonneg (mul_nonneg (sq_nonneg c₁) hc₂) hc₃, mul_nonneg (mul_nonneg (sq_nonneg c₁) (sq_nonneg c₂)) (by linarith : (0:ℝ) ≤ 1 + c₃)]
    Causalean.Experimentation.ExposureMappingInterference.abs_vb_le · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/VarEstQuadBound.lean:349
  • vb_eq_zero_of_indep theorem — Off-edge vanishing. If the same-exposure and cross-exposure pair propensities factor as products for an off-diagonal pair i ≠ j, then the centered-cross factors vanish and vb i j = 0; the theorem assumes these factorization hypotheses directly.
    Ω :
    Type u_1
    shared
    ι :
    Type u_2
    shared
    Θ :
    Type u_3
    shared
    Δ :
    Type u_4
    shared
    D :
    y :
    ι → Δ → ℝ
    f :
    Ω → Θ → Δ
    θ :
    ι → Θ
    dk dl :
    Δ
    i j :
    ι
    hij :
    i ≠ j
    hsame_k :
    propPairSame D f θ i j dk = prop D f θ i dk * prop D f θ j dk
    hsame_l :
    propPairSame D f θ i j dl = prop D f θ i dl * prop D f θ j dl
    hcross :
    propPairCross D f θ i j dk dl = prop D f θ i dk * prop D f θ j dl
    vb D y f θ dk dl i j = fun _ => 0
    Proof (Lean source)
    theorem vb_eq_zero_of_indep (D : FiniteDesign Ω) (y : ι → Δ → ℝ) (f : Ω → Θ → Δ) (θ : ι → Θ) (dk dl : Δ) (i j : ι) (hij : i ≠ j) (hsame_k : propPairSame D f θ i j dk = prop D f θ i dk * prop D f θ j dk) (hsame_l : propPairSame D f θ i j dl = prop D f θ i dl * prop D f θ j dl) (hcross : propPairCross D f θ i j dk dl = prop D f θ i dk * prop D f θ j dl) : vb D y f θ dk dl i j = fun _ => 0 := by funext z rw [vb, if_neg hij, vbOff, offVar, offVar, offCov, hsame_k, hsame_l, hcross] ring
    Causalean.Experimentation.ExposureMappingInterference.vb_eq_zero_of_indep · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/VarEstQuadBound.lean:427
Intervals 2 core · 0 supporting Given the local-dependence CLT interface and rowwise positive variances, this module transfers asymptotic normality into oracle Wald coverage. ★ wald_coverage★ wald_coverage_feasible

Wald-coverage transfer lemmas

Given the local-dependence CLT interface and rowwise positive variances, this module transfers asymptotic normality into oracle Wald coverage. It also gives the corresponding feasible transfer when variance-estimator undershoot probabilities vanish. These lemmas assume the main analytic inputs; they do not by themselves formalize Aronow–Samii (2017), Proposition 6.2 or its Conditions 3, 5, and 6. An alternative finite-grid sufficient-condition result, based on explicit bounded-degree, factorization, covariance-vanishing, and scaled-variance hypotheses, is wald_coverage_feasible_of_bounded_degree_factorization_covariance in VarEstConsistencyConditions.lean.

The oracle theorem uses only the lower half of the CLT: the event |τ̂ − τ| ≤ z·√Var contains {−z < W ≤ z} (with W the studentized statistic), whose probability is Pr[W ≤ z] − Pr[W ≤ −z] → Φ(z) − Φ(−z) = 1 − α by the interface plus CDF symmetry Φ(−z) = 1 − Φ(z). (The matching upper bound — exact convergence to 1 − α — would need Gaussian-CDF continuity; the paper only claims "at least", so it is not pursued here.)

theorem wald_coverage reviewed
Causalean.Experimentation.ExposureMappingInterference

Oracle Wald-coverage transfer from a CLT. For a sequence of experiments and treatment contrasts, suppose the studentized statistic satisfies the local-dependence CLT and the effect-estimator variance is everywhere positive. Then for a nonnegative quantile satisfying Φ(zq) = 1 − α/2, the oracle Wald interval has liminf coverage at least 1 − α.

Formal statement
Exp :
ℕ → Experiment
dk dl :
∀ n, (Exp n).Δ
hclt :
hVar :
∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))
α :
ℝ
zq :
ℝ
hzq0 :
0 ≤ zq
hzq :
stdNormalCdf zq = 1 - α / 2
1 - α
≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))))) atTop
Proof (Lean source)
theorem wald_coverage (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) (hclt : LocalDependenceCLT Exp dk dl) (hVar : ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) {α : ℝ} (zq : ℝ) (hzq0 : 0 ≤ zq) (hzq : stdNormalCdf zq = 1 - α / 2) : 1 - α ≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))))) atTop := by -- The studentized lower-CDF probabilities at `zq` and `-zq`. set S : ℕ → ℝ := fun n => (Exp n).D.Pr (fun z => (Exp n).studentizedEffect (dk n) (dl n) z ≤ zq) with hSdef set Lo : ℕ → ℝ := fun n => (Exp n).D.Pr (fun z => (Exp n).studentizedEffect (dk n) (dl n) z ≤ -zq) with hLodef set I : ℕ → ℝ := fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)))) with hIdef -- (1) Limit of `S - Lo`. have hS : Tendsto S atTop (𝓝 (stdNormalCdf zq)) := hclt.tendsto_cdf zq have hLo : Tendsto Lo atTop (𝓝 (stdNormalCdf (-zq))) := hclt.tendsto_cdf (-zq) have hlim : Tendsto (fun n => S n - Lo n) atTop (𝓝 (1 - α)) := by have h := hS.sub hLo rw [stdNormalCdf_neg zq, hzq] at h have he : (1 - α / 2) - (1 - (1 - α / 2)) = 1 - α := by ring rwa [he] at h -- (2) Pointwise lower bound `S - Lo ≤ I`. have hbound : ∀ n, S n - Lo n ≤ I n := by intro n -- Abbreviate the studentized statistic. set W : (Exp n).Ω → ℝ := fun z => (Exp n).studentizedEffect (dk n) (dl n) z with hWdef -- Split `S` by the event `W ≤ -zq`. have hsplit := (Exp n).D.Pr_split (fun z => W z ≤ zq) (fun z => W z ≤ -zq) -- The first piece equals `Lo`. have hfirst : (Exp n).D.Pr (fun z => W z ≤ zq ∧ W z ≤ -zq) = Lo n := by apply (Exp n).D.Pr_congr intro z constructor · exact fun h => h.2 · intro h2 exact ⟨le_trans h2 (by linarith [hzq0]), h2⟩ -- So `S - Lo` is the probability of the second piece. have hSLo : S n - Lo n = (Exp n).D.Pr (fun z => W z ≤ zq ∧ ¬ W z ≤ -zq) := by have : S n = (Exp n).D.Pr (fun z => W z ≤ zq ∧ W z ≤ -zq) + (Exp n).D.Pr (fun z => W z ≤ zq ∧ ¬ W z ≤ -zq) := hsplit rw [this, hfirst]; ring rw [hSLo] -- That second piece is contained in `I`'s event. apply (Exp n).D.Pr_mono intro z hz obtain ⟨hz1, hz2⟩ := hz rw [not_le] at hz2 -- `|W z| ≤ zq`. have habs : |W z| ≤ zq := abs_le.mpr ⟨le_of_lt hz2, hz1⟩ -- Unfold the studentized statistic. set s : ℝ := sqrt ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) with hsdef have hs : 0 < s := Real.sqrt_pos.mpr (hVar n) rw [hWdef] at habs simp only [Experiment.studentizedEffect] at habs rw [← hsdef] at habs rw [abs_div, abs_of_pos hs, div_le_iff₀ hs] at habs exact habs -- (3) Conclude with liminf. have hbdd : IsBoundedUnder (· ≥ ·) atTop (fun n => S n - Lo n) := hlim.isBoundedUnder_ge have hcobdd : IsCoboundedUnder (· ≥ ·) atTop I := isCoboundedUnder_ge_of_le atTop (x := (1 : ℝ)) (fun n => (Exp n).D.Pr_le_one _) calc 1 - α = liminf (fun n => S n - Lo n) atTop := hlim.liminf_eq.symm _ ≤ liminf I atTop := Filter.liminf_le_liminf (Filter.Eventually.of_forall hbound) hbdd hcobdd
theorem wald_coverage_feasible reviewed
Causalean.Experimentation.ExposureMappingInterference

Feasible Wald-coverage transfer from a CLT and variance control. For a sequence of experiments and treatment contrasts, suppose the studentized statistic satisfies the local-dependence CLT, the effect-estimator variance is everywhere positive, and variance-estimator undershoot probabilities vanish. Then for a nonnegative quantile satisfying Φ(zq) = 1 − α/2, the feasible Wald interval has liminf coverage at least 1 − α.

Formal statement
Exp :
ℕ → Experiment
dk dl :
∀ n, (Exp n).Δ
hclt :
hVar :
∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))
hVhat :
∀ ε : ℝ
if
0 < ε
then
Tendsto (fun n => (Exp n).D.Pr (fun z => htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z < (1 - ε) * (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)))) atTop (𝓝 0)
α :
ℝ
zq :
ℝ
hzq0 :
0 ≤ zq
hzq :
stdNormalCdf zq = 1 - α / 2
1 - α
≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z))) atTop
Proof (Lean source)
theorem wald_coverage_feasible (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) (hclt : LocalDependenceCLT Exp dk dl) (hVar : ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) (hVhat : ∀ ε : ℝ, 0 < ε → Tendsto (fun n => (Exp n).D.Pr (fun z => htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z < (1 - ε) * (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)))) atTop (𝓝 0)) {α : ℝ} (zq : ℝ) (hzq0 : 0 ≤ zq) (hzq : stdNormalCdf zq = 1 - α / 2) : 1 - α ≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z))) atTop := by simpa only [one_mul, div_one, abs_sub_comm] using conservative_wald_liminf_of_feasible_studentized_cdf (fun n => (Exp n).D) (fun n => htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) (fun n => tauTrue (Exp n).y (dk n) (dl n)) (fun n => (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) (fun _ => 1) (fun n => htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) (fun _ => one_pos) hVar hVhat α zq (fun t => by convert hclt.tendsto_cdf t using 1 funext n apply (Exp n).D.Pr_congr intro z simp only [Real.sqrt_one, one_mul, Experiment.studentizedEffect]) hzq0 hzq
Var­Est­Consistency­Conditions 2 core · 0 supporting Assembles the per-population quadruple-sum bound (var_htEdgeStat_le) into the asymptotic limit N²·Var[V̂_n] → 0 along a sequence of growing experiments, under uniform boundedness, single-propensity overlap, inverse joint ★ var_NsqVhat_tendsto_zero_of_conditions★ wald_coverage_feasible_of_bounded_degree_factorization_covariance

Variance-estimator consistency from boundedness and dependency-graph conditions

Assembles the per-population quadruple-sum bound (var_htEdgeStat_le) into the asymptotic limit N²·Var[V̂_n] → 0 along a sequence of growing experiments, under uniform boundedness, single-propensity overlap, inverse joint-propensity bounds, and dependency-graph covariance conditions. Combined with the Stein dependency-graph CLT discharge, the Chebyshev reduction (relVar_of_NsqVar_tendsto), and the feasible-coverage capstone (wald_coverage_feasible_of_relVar), this proves feasible Wald coverage from primitive boundedness, overlap, dependency-graph, and variance-growth conditions.

N²·Var[V̂_n] = N⁻²·Var[V̂_raw,n] ≤ N⁻²·(8·M²·m³·N) = 8·M²·m³/N → 0 as N → ∞.

theorem var_NsqVhat_tendsto_zero_of_conditions reviewed
Causalean.Experimentation.ExposureMappingInterference

Finite-grid scaled variance-estimator variance vanishes. Along a sequence of experiments with distinct treatment arms whose outcomes are uniformly bounded by c₁, suppose the marginal exposure propensities are positive with inverse propensities bounded by c₂, and joint inverse propensities bounded by c₃. Suppose further a symmetric, reflexive dependency relation of degree at most m such that off-edge joint propensities factor, graph-unlinked kernel terms have zero covariance, and the population size diverges. Then N²·Var[V̂_n] tends to zero.

Formal statement
Exp :
ℕ → Experiment
dk dl :
∀ n, (Exp n).Δ
hne :
∀ n, dk n ≠ dl n
c₁ c₂ c₃ :
ℝ
hc₁ :
0 ≤ c₁
hc₂ :
0 ≤ c₂
hc₃ :
0 ≤ c₃
hy :
∀ n i d, |(Exp n).y i d| ≤ c₁
hπk :
∀ n i, 0 < prop (Exp n).D (Exp n).f (Exp n).θ i (dk n)
hπl :
∀ n i, 0 < prop (Exp n).D (Exp n).f (Exp n).θ i (dl n)
hπinvk :
∀ n i, 1 / prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≤ c₂
hπinvl :
∀ n i, 1 / prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≤ c₂
hjk :
∀ n i j, 1 / propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n) ≤ c₃
hjl :
∀ n i j, 1 / propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n) ≤ c₃
hjc :
∀ n i j, 1 / propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n) ≤ c₃
G :
∀ n
if
(Exp n).ι
and
(Exp n).ι
then
Prop
decG :
∀ n, DecidableRel (G n)
hrefl :
∀ n i, G n i i
hsymm :
∀ n i j
if
G n i j
then
G n j i
m :
ℕ
hdeg :
∀ n i, (Finset.univ.filter (fun j => G n i j)).card ≤ m
hGindep :
∀ n i j
if
¬ G n i j
then
propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n)
= prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dk n) ∧
propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n)
= prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dl n) ∧
propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n)
= prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dl n)
hcov0 :
∀ n i j k l
if
¬ (G n i k ∨ G n i l ∨ G n j k ∨ G n j l)
then
(Exp n).D.Cov (vb (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) i j) (vb (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) k l)
= 0
hN :
Tendsto (fun n => (card (Exp n).ι : ℝ)) atTop atTop
Tendsto (fun n => (card (Exp n).ι : ℝ) ^ 2 * (Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) atTop (𝓝 0)
Proof (Lean source)
theorem var_NsqVhat_tendsto_zero_of_conditions (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) (hne : ∀ n, dk n ≠ dl n) {c₁ c₂ c₃ : ℝ} (hc₁ : 0 ≤ c₁) (hc₂ : 0 ≤ c₂) (hc₃ : 0 ≤ c₃) (hy : ∀ n i d, |(Exp n).y i d| ≤ c₁) (hπk : ∀ n i, 0 < prop (Exp n).D (Exp n).f (Exp n).θ i (dk n)) (hπl : ∀ n i, 0 < prop (Exp n).D (Exp n).f (Exp n).θ i (dl n)) (hπinvk : ∀ n i, 1 / prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≤ c₂) (hπinvl : ∀ n i, 1 / prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≤ c₂) (hjk : ∀ n i j, 1 / propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n) ≤ c₃) (hjl : ∀ n i j, 1 / propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n) ≤ c₃) (hjc : ∀ n i j, 1 / propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n) ≤ c₃) (G : ∀ n, (Exp n).ι → (Exp n).ι → Prop) (decG : ∀ n, DecidableRel (G n)) (hrefl : ∀ n i, G n i i) (hsymm : ∀ n i j, G n i j → G n j i) {m : ℕ} (hdeg : ∀ n i, (Finset.univ.filter (fun j => G n i j)).card ≤ m) (hGindep : ∀ n i j, ¬ G n i j → propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n) = prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dk n) ∧ propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n) = prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dl n) ∧ propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n) = prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dl n)) (hcov0 : ∀ n i j k l, ¬ (G n i k ∨ G n i l ∨ G n j k ∨ G n j l) → (Exp n).D.Cov (vb (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) i j) (vb (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) k l) = 0) (hN : Tendsto (fun n => (card (Exp n).ι : ℝ)) atTop atTop) : Tendsto (fun n => (card (Exp n).ι : ℝ) ^ 2 * (Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) atTop (𝓝 0) := by set C : ℝ := 8 * vbBound c₁ c₂ c₃ ^ 2 * (m : ℝ) ^ 3 with hCdef refine squeeze_zero (g := fun n => C * (card (Exp n).ι : ℝ)⁻¹) (fun n => ?_) (fun n => ?_) ?_ · exact mul_nonneg (sq_nonneg _) ((Exp n).D.Var_nonneg _) · letI := decG n exact NsqVar_htEffectVarEst_le (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) (hne n) hc₁ hc₂ hc₃ (hy n) (hπk n) (hπl n) (hπinvk n) (hπinvl n) (hjk n) (hjl n) (hjc n) (G n) (hrefl n) (hsymm n) (hdeg n) (hGindep n) (hcov0 n) · have hinv : Tendsto (fun n => (card (Exp n).ι : ℝ)⁻¹) atTop (𝓝 0) := tendsto_inv_atTop_zero.comp hN have := tendsto_const_nhds (x := C) |>.mul hinv simpa using this
theorem wald_coverage_feasible_of_bounded_degree_factorization_covariance reviewed
Causalean.Experimentation.ExposureMappingInterference

Feasible Wald coverage from bounded-degree, factorization, and covariance conditions. Along a sequence of experiments with distinct treatment arms whose outcomes are uniformly bounded by c₁, suppose the marginal exposure propensities under dk and dl are positive with inverse propensities bounded by c₂ — taken strictly positive — and the joint-propensity inverses are bounded by a nonnegative c₃, with all off-diagonal joint propensities strictly positive. Suppose a symmetric, reflexive dependency relation G of degree at most m makes off-edge joint propensities factor and gives graph-unlinked kernel pairs zero covariance; suppose also the per-unit effect summands have a Stein dependency graph Dg of degree at most m, that the population size diverges while the scaled true variance tends to positive cVar and that variance is everywhere positive, and that zq is a nonnegative quantile satisfying Φ(zq) = 1 − α/2. Then the feasible Wald interval has liminf coverage at least 1 − α.

Formal statement
Exp :
ℕ → Experiment
dk dl :
∀ n, (Exp n).Δ
m :
ℕ
Dg :
∀ n, DepGraph (fun i => (Exp n).effSummand (dk n) (dl n) i) (Exp n).D.toMeasure
hSteinDeg :
∀ n i, ((Dg n).nbhd i).card ≤ m
hne :
∀ n, dk n ≠ dl n
c₁ c₂ c₃ :
ℝ
hc₁ :
0 ≤ c₁
hc₂ :
0 ≤ c₂
hc₃ :
0 ≤ c₃
hc₂pos :
0 < c₂
hy :
∀ n i d, |(Exp n).y i d| ≤ c₁
hπk :
∀ n i, 0 < prop (Exp n).D (Exp n).f (Exp n).θ i (dk n)
hπl :
∀ n i, 0 < prop (Exp n).D (Exp n).f (Exp n).θ i (dl n)
hπinvk :
∀ n i, 1 / prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≤ c₂
hπinvl :
∀ n i, 1 / prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≤ c₂
hjk :
∀ n i j, 1 / propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n) ≤ c₃
hjl :
∀ n i j, 1 / propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n) ≤ c₃
hjc :
∀ n i j, 1 / propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n) ≤ c₃
G :
∀ n
if
(Exp n).ι
and
(Exp n).ι
then
Prop
decG :
∀ n, DecidableRel (G n)
hrefl :
∀ n i, G n i i
hsymm :
∀ n i j
if
G n i j
then
G n j i
hdeg :
∀ n i, (Finset.univ.filter (fun j => G n i j)).card ≤ m
hGindep :
∀ n i j
if
¬ G n i j
then
propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n)
= prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dk n) ∧
propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n)
= prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dl n) ∧
propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n)
= prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dl n)
hcov0 :
∀ n i j k l
if
¬ (G n i k ∨ G n i l ∨ G n j k ∨ G n j l)
then
(Exp n).D.Cov (vb (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) i j) (vb (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) k l)
= 0
hN :
Tendsto (fun n => (card (Exp n).ι : ℝ)) atTop atTop
hjointk :
∀ n i j
if
i ≠ j
then
0 < propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n)
hjointl :
∀ n i j
if
i ≠ j
then
0 < propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n)
hjointc :
∀ n i j
if
i ≠ j
then
0 < propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n)
cVar :
ℝ
hcVar :
0 < cVar
hScaledVar :
Tendsto (fun n => (card (Exp n).ι : ℝ) * (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) atTop (𝓝 cVar)
hVar :
∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))
α :
ℝ
zq :
ℝ
hzq0 :
0 ≤ zq
hzq :
stdNormalCdf zq = 1 - α / 2
1 - α
≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z))) atTop
Proof (Lean source)
theorem wald_coverage_feasible_of_bounded_degree_factorization_covariance (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) {m : ℕ} (Dg : ∀ n, DepGraph (fun i => (Exp n).effSummand (dk n) (dl n) i) (Exp n).D.toMeasure) (hSteinDeg : ∀ n i, ((Dg n).nbhd i).card ≤ m) (hne : ∀ n, dk n ≠ dl n) {c₁ c₂ c₃ : ℝ} (hc₁ : 0 ≤ c₁) (hc₂ : 0 ≤ c₂) (hc₃ : 0 ≤ c₃) (hc₂pos : 0 < c₂) (hy : ∀ n i d, |(Exp n).y i d| ≤ c₁) (hπk : ∀ n i, 0 < prop (Exp n).D (Exp n).f (Exp n).θ i (dk n)) (hπl : ∀ n i, 0 < prop (Exp n).D (Exp n).f (Exp n).θ i (dl n)) (hπinvk : ∀ n i, 1 / prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≤ c₂) (hπinvl : ∀ n i, 1 / prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≤ c₂) (hjk : ∀ n i j, 1 / propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n) ≤ c₃) (hjl : ∀ n i j, 1 / propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n) ≤ c₃) (hjc : ∀ n i j, 1 / propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n) ≤ c₃) (G : ∀ n, (Exp n).ι → (Exp n).ι → Prop) (decG : ∀ n, DecidableRel (G n)) (hrefl : ∀ n i, G n i i) (hsymm : ∀ n i j, G n i j → G n j i) (hdeg : ∀ n i, (Finset.univ.filter (fun j => G n i j)).card ≤ m) (hGindep : ∀ n i j, ¬ G n i j → propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n) = prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dk n) ∧ propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n) = prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dl n) ∧ propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n) = prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) * prop (Exp n).D (Exp n).f (Exp n).θ j (dl n)) (hcov0 : ∀ n i j k l, ¬ (G n i k ∨ G n i l ∨ G n j k ∨ G n j l) → (Exp n).D.Cov (vb (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) i j) (vb (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) k l) = 0) (hN : Tendsto (fun n => (card (Exp n).ι : ℝ)) atTop atTop) (hjointk : ∀ n i j, i ≠ j → 0 < propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n)) (hjointl : ∀ n i j, i ≠ j → 0 < propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n)) (hjointc : ∀ n i j, i ≠ j → 0 < propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n)) {cVar : ℝ} (hcVar : 0 < cVar) (hScaledVar : Tendsto (fun n => (card (Exp n).ι : ℝ) * (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) atTop (𝓝 cVar)) (hVar : ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) {α : ℝ} (zq : ℝ) (hzq0 : 0 ≤ zq) (hzq : stdNormalCdf zq = 1 - α / 2) : 1 - α ≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z))) atTop := by have hclt : LocalDependenceCLT Exp dk dl := localDependenceCLT_of_bounded_degree_scaled_variance Exp dk dl Dg m hSteinDeg c₁ (fun n i => hy n i (dk n)) (fun n i => hy n i (dl n)) c₂ hc₂pos (fun n i => by have hπinv := hπinvk n i rw [one_div] at hπinv rw [one_div] exact (inv_le_comm₀ hc₂pos (hπk n i)).mpr hπinv) (fun n i => by have hπinv := hπinvl n i rw [one_div] at hπinv rw [one_div] exact (inv_le_comm₀ hc₂pos (hπl n i)).mpr hπinv) hN hVar cVar hcVar hScaledVar have hVN := var_NsqVhat_tendsto_zero_of_conditions Exp dk dl hne hc₁ hc₂ hc₃ hy hπk hπl hπinvk hπinvl hjk hjl hjc G decG hrefl hsymm hdeg hGindep hcov0 hN have hrel := relVar_of_NsqVar_tendsto Exp dk dl hcVar hScaledVar hVN exact wald_coverage_feasible_of_relVar Exp dk dl hclt hne (fun n i => (hπk n i).ne') (fun n i => (hπl n i).ne') (fun n i j hij => (hjointk n i j hij).ne') (fun n i j hij => (hjointl n i j hij).ne') (fun n i j hij => (hjointc n i j hij).ne') hVar hrel zq hzq0 hzq
Variance­Consistency 2 core · 1 supporting The feasible Wald interval in Aronow–Samii (2017), Proposition 6.2, uses the *estimated* variance Vh (htEffectVarEst). ★ htEffectVarEst_undershoot_tendsto_zero★ wald_coverage_feasible_of_relVar

Consistency of the conservative variance estimator

The feasible Wald interval in Aronow–Samii (2017), Proposition 6.2, uses the estimated variance Vh (htEffectVarEst). Its asymptotic coverage (wald_coverage_feasible) consumes a single analytic input: the conservative estimate undershoots the true variance only with vanishing probability,

∀ ε > 0, Pr[ Vh < (1−ε)·Var[τ̂] ] → 0.

This file reduces that input to one clean L²-relative-consistency limit

Var[Vh] / Var[τ̂]² → 0

via the finite Chebyshev inequality and the already-proven conservativeness Var[τ̂] ≤ E[Vh] (E_htEffectVarEst_ge, a positive-joint-probability specialization of Proposition 5.6):

{ Vh < (1−ε)·Var } ⊆ { ε·Var ≤ |Vh − E Vh| } (using E Vh ≥ Var), Pr[ ε·Var ≤ |Vh − E Vh| ] ≤ Var[Vh]/(ε·Var)² = (1/ε²)·(Var[Vh]/Var²),

and the right side tends to 0. The hypothesis Var[Vh]/Var² → 0 is the precise isolated remaining input. Under the separately assumed scaled-variance limit N·Var → c > 0, this relative limit follows from Var[N·Vh] → 0. The bounded-degree, factorization, and covariance-vanishing hypotheses used elsewhere in this development are alternative sufficient conditions, not a restatement of the paper's Conditions 3, 5, and 6.

theorem htEffectVarEst_undershoot_tendsto_zero reviewed
Causalean.Experimentation.ExposureMappingInterference

Reduction of feasible-interval variance consistency to L²-relative consistency. For a sequence of experiments and treatment contrasts, suppose the two arms are distinct, every unit has nonzero dk exposure propensity, every unit has nonzero dl exposure propensity, same-arm joint propensities are nonzero, and cross-arm joint propensities are nonzero. If the true effect-estimator variance is everywhere positive and the L²-relative-consistency limit holds, then the variance-estimator undershoot probability vanishes for every positive threshold.

Formal statement
Exp :
ℕ → Experiment
dk dl :
∀ n, (Exp n).Δ
hne :
∀ n, dk n ≠ dl n
hk :
∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0
hl :
∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0
hjk :
∀ n i j
if
i ≠ j
then
propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n) ≠ 0
hjl :
∀ n i j
if
i ≠ j
then
propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n) ≠ 0
hjc :
∀ n i j
if
i ≠ j
then
propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n) ≠ 0
hVarpos :
∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))
hrel :
Tendsto (fun n => (Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) / ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) ^ 2) atTop (𝓝 0)
ε :
ℝ
0 < ε
Tendsto (fun n => (Exp n).D.Pr (fun z => htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z < (1 - ε) * (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)))) atTop (𝓝 0)
Proof (Lean source)
theorem htEffectVarEst_undershoot_tendsto_zero (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) (hne : ∀ n, dk n ≠ dl n) (hk : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0) (hl : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0) (hjk : ∀ n i j, i ≠ j → propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n) ≠ 0) (hjl : ∀ n i j, i ≠ j → propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n) ≠ 0) (hjc : ∀ n i j, i ≠ j → propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n) ≠ 0) (hVarpos : ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) (hrel : Tendsto (fun n => (Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) / ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) ^ 2) atTop (𝓝 0)) : ∀ ε : ℝ, 0 < ε → Tendsto (fun n => (Exp n).D.Pr (fun z => htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z < (1 - ε) * (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)))) atTop (𝓝 0) := by intro ε hε0 have hεne : ε ≠ 0 := hε0.ne' -- Squeeze the coverage-defect probability between `0` and `(1/ε²)·(Var[Vh]/Var²)`. refine squeeze_zero (g := fun n => (1 / ε ^ 2) * ((Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) / ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) ^ 2)) (fun n => (Exp n).D.Pr_nonneg _) (fun n => ?_) ?_ · -- Per-`n` upper bound via event inclusion + Chebyshev. set Vh : (Exp n).Ω → ℝ := htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) with hVh set Vr : ℝ := (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) with hVr have hVrpos : 0 < Vr := hVarpos n have hVrne : Vr ≠ 0 := hVrpos.ne' -- Conservativeness: `E[Vh] ≥ Var[τ̂]`. have hEge : Vr ≤ (Exp n).D.E Vh := E_htEffectVarEst_ge (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) (hne n) (hk n) (hl n) (hjk n) (hjl n) (hjc n) have haε : 0 < ε * Vr := mul_pos hε0 hVrpos -- `{ Vh < (1−ε)Vr } ⊆ { ε·Vr ≤ |Vh − E Vh| }`. have hsub : ∀ z, Vh z < (1 - ε) * Vr → ε * Vr ≤ |Vh z - (Exp n).D.E Vh| := by intro z hz have hexpand : (1 - ε) * Vr = Vr - ε * Vr := by ring have hz' : Vh z < Vr - ε * Vr := by rw [hexpand] at hz; exact hz have h1 : Vh z - (Exp n).D.E Vh < -(ε * Vr) := by linarith [hz', hEge] have h2 : -(Vh z - (Exp n).D.E Vh) ≤ |Vh z - (Exp n).D.E Vh| := neg_le_abs _ linarith have hmono := (Exp n).D.Pr_mono (fun z => Vh z < (1 - ε) * Vr) (fun z => ε * Vr ≤ |Vh z - (Exp n).D.E Vh|) hsub have hcheb := (Exp n).D.chebyshev Vh haε calc (Exp n).D.Pr (fun z => Vh z < (1 - ε) * Vr) ≤ (Exp n).D.Pr (fun z => ε * Vr ≤ |Vh z - (Exp n).D.E Vh|) := hmono _ ≤ (Exp n).D.Var Vh / (ε * Vr) ^ 2 := hcheb _ = (1 / ε ^ 2) * ((Exp n).D.Var Vh / Vr ^ 2) := by rw [mul_pow]; field_simp · -- `(1/ε²)·(Var[Vh]/Var²) → (1/ε²)·0 = 0`. have h := hrel.const_mul (1 / ε ^ 2) simpa using h
theorem wald_coverage_feasible_of_relVar reviewed
Causalean.Experimentation.ExposureMappingInterference

Feasible Wald coverage from L²-relative variance consistency. For a sequence of experiments and treatment contrasts with distinct arms in every experiment, suppose the studentized effect statistic satisfies the local-dependence CLT, all marginal propensities are nonzero, and all off-diagonal joint propensities are nonzero. If the true effect-estimator variance is everywhere positive and the L²-relative-consistency limit holds, then for a nonnegative quantile satisfying Φ(zq) = 1 − α/2, the feasible Wald interval has liminf coverage at least 1 − α.

Formal statement
Exp :
ℕ → Experiment
dk dl :
∀ n, (Exp n).Δ
hclt :
hne :
∀ n, dk n ≠ dl n
hk :
∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0
hl :
∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0
hjk :
∀ n i j
if
i ≠ j
then
propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n) ≠ 0
hjl :
∀ n i j
if
i ≠ j
then
propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n) ≠ 0
hjc :
∀ n i j
if
i ≠ j
then
propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n) ≠ 0
hVar :
∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))
hrel :
Tendsto (fun n => (Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) / ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) ^ 2) atTop (𝓝 0)
α :
ℝ
zq :
ℝ
hzq0 :
0 ≤ zq
hzq :
stdNormalCdf zq = 1 - α / 2
1 - α
≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z))) atTop
Proof (Lean source)
theorem wald_coverage_feasible_of_relVar (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) (hclt : LocalDependenceCLT Exp dk dl) (hne : ∀ n, dk n ≠ dl n) (hk : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dk n) ≠ 0) (hl : ∀ n i, prop (Exp n).D (Exp n).f (Exp n).θ i (dl n) ≠ 0) (hjk : ∀ n i j, i ≠ j → propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dk n) ≠ 0) (hjl : ∀ n i j, i ≠ j → propPairSame (Exp n).D (Exp n).f (Exp n).θ i j (dl n) ≠ 0) (hjc : ∀ n i j, i ≠ j → propPairCross (Exp n).D (Exp n).f (Exp n).θ i j (dk n) (dl n) ≠ 0) (hVar : ∀ n, 0 < (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) (hrel : Tendsto (fun n => (Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) / ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) ^ 2) atTop (𝓝 0)) {α : ℝ} (zq : ℝ) (hzq0 : 0 ≤ zq) (hzq : stdNormalCdf zq = 1 - α / 2) : 1 - α ≤ liminf (fun n => (Exp n).D.Pr (fun z => |htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z - tauTrue (Exp n).y (dk n) (dl n)| ≤ zq * sqrt (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n) z))) atTop := wald_coverage_feasible Exp dk dl hclt hVar (htEffectVarEst_undershoot_tendsto_zero Exp dk dl hne hk hl hjk hjl hjc hVar hrel) zq hzq0 hzq
1 supporting declaration (lemmas, instances)
  • relVar_of_NsqVar_tendsto theorem — Bridge from scaled variance-estimator control to L²-relative consistency. For a sequence of experiments and exposure contrasts, if the limiting scaled true variance is a positive constant, the scaled true variances converge to that constant, and the scaled variance-estimator variances converge to zero, then the relative limit Var[V̂_n]/Var[τ̂_n]² → 0.
    Exp :
    ℕ → Experiment
    dk dl :
    ∀ n, (Exp n).Δ
    c :
    ℝ
    hc :
    0 < c
    hScaledVar :
    Tendsto (fun n => (card (Exp n).ι : ℝ) * (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) atTop (𝓝 c)
    hVN :
    Tendsto (fun n => (card (Exp n).ι : ℝ) ^ 2 * (Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) atTop (𝓝 0)
    Tendsto (fun n => (Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) / ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) ^ 2) atTop (𝓝 0)
    Proof (Lean source)
    theorem relVar_of_NsqVar_tendsto (Exp : ℕ → Experiment) (dk dl : ∀ n, (Exp n).Δ) {c : ℝ} (hc : 0 < c) (hScaledVar : Tendsto (fun n => (card (Exp n).ι : ℝ) * (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) atTop (𝓝 c)) (hVN : Tendsto (fun n => (card (Exp n).ι : ℝ) ^ 2 * (Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) atTop (𝓝 0)) : Tendsto (fun n => (Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) / ((Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n))) ^ 2) atTop (𝓝 0) := by set card : ℕ → ℝ := fun n => (card (Exp n).ι : ℝ) with hcard set Vr : ℕ → ℝ := fun n => (Exp n).D.Var (htEffect (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) with hVrdef set Vh : ℕ → ℝ := fun n => (Exp n).D.Var (htEffectVarEst (Exp n).D (Exp n).y (Exp n).f (Exp n).θ (dk n) (dl n)) with hVhdef -- `(N·Vr)² → c² ≠ 0`, and `N²·Vh → 0`, so the quotient tends to `0/c² = 0`. have hf : Tendsto (fun n => card n ^ 2 * Vh n / (card n * Vr n) ^ 2) atTop (𝓝 0) := by have h := hVN.div (hScaledVar.pow 2) (pow_ne_zero 2 hc.ne') rw [zero_div] at h exact h -- Eventually `N·Vr > 0`, hence `N ≠ 0` and `Vr ≠ 0`, giving the algebraic identity. have hpos : ∀ᶠ n in atTop, 0 < card n * Vr n := hScaledVar.eventually (eventually_gt_nhds hc) have hev : (fun n => card n ^ 2 * Vh n / (card n * Vr n) ^ 2) =ᶠ[atTop] (fun n => Vh n / Vr n ^ 2) := by filter_upwards [hpos] with n hn have hne : card n * Vr n ≠ 0 := hn.ne' have hcardn : card n ≠ 0 := fun h => hne (by rw [h, zero_mul]) rw [mul_pow, mul_div_mul_left _ _ (pow_ne_zero 2 hcardn)] exact hf.congr' hev
    Causalean.Experimentation.ExposureMappingInterference.relVar_of_NsqVar_tendsto · Causalean/Experimentation/ExposureMappingInterference/Asymptotics/VarianceConsistency.lean:176