PO.ID.Exact.Proximal
Proximal causal inference: identification through outcome- and treatment-confounding proxies via bridge functions.
Setup 17 core · 14 supporting This file defines the data layer for proximal average treatment effect identification. ★ POProximalSystem★ σ_UX_le
Proximal Setup
This file defines the data layer for proximal average treatment effect
identification. POProximalSystem records a covariate, binary treatment,
treatment-side proxy, outcome-side proxy, real-valued outcome, and latent
confounder. The namespace then supplies the factual maps X, A, Z, W,
Y, and U; the treatment-specific potential outcome YofA; tuple-valued
conditioning targets AZX, AUX, UX, and AZUX; and the generated
sigma-algebras σ_AZX, σ_AUX, σ_UX, and σ_AZUX with their ambient
sub-sigma-algebra lemmas.
Assumption bundles and the identification theorem are kept in the companion
Proximal.Assumptions and Proximal.Main files.
Proximal ATE system. Bundles six distinguished potential-outcome variables inside a potential-outcome system: an observed covariate, a binary treatment, a treatment-side proxy, an outcome-side proxy, a real-valued outcome, and a latent confounder (def:po-proximal-system).
Definition (Lean source)
Factual covariate X = Xvar(r∅).
Definition (Lean source)
Factual treatment A = Avar(r∅).
Definition (Lean source)
Factual treatment-side proxy Z = Zvar(r∅).
Definition (Lean source)
Factual outcome-side proxy W = Wvar(r∅).
Definition (Lean source)
Factual outcome Y = Yvar(r∅).
Definition (Lean source)
Latent confounder U = Uvar(r∅).
Definition (Lean source)
Treatment-specific potential outcome Y(a) := Yvar.cfUnder Avar a.
Definition (Lean source)
(A, Z, X) : P.Ω → Bool × γ_Z × γ_X.
Definition (Lean source)
(A, U, X) : P.Ω → Bool × γ_U × γ_X.
Definition (Lean source)
(U, X) : P.Ω → γ_U × γ_X.
Definition (Lean source)
(A, Z, U, X) : P.Ω → Bool × γ_Z × γ_U × γ_X.
Definition (Lean source)
σ-algebra generated by (A, Z, X).
Definition (Lean source)
σ-algebra generated by (A, U, X).
Definition (Lean source)
σ-algebra generated by (U, X).
Definition (Lean source)
σ-algebra generated by (A, Z, U, X).
Definition (Lean source)
The σ-algebra generated by the latent confounder and covariate is a sub-σ-algebra of the ambient measurable space.
Formal statement
Proof (Lean source)
14 supporting declarations (lemmas, instances)
-
measurable_Xlemma — The factual covariate is measurable.conclusionMeasurable S.XProof (Lean source)
lemma measurable_X : Measurable S.X := S.Xvar.measurable_factual -
measurable_Alemma — The factual treatment is measurable.conclusionMeasurable S.AProof (Lean source)
lemma measurable_A : Measurable S.A := S.Avar.measurable_factual -
measurable_Zlemma — The factual treatment-side proxy is measurable.conclusionMeasurable S.ZProof (Lean source)
lemma measurable_Z : Measurable S.Z := S.Zvar.measurable_factual -
measurable_Wlemma — The factual outcome-side proxy is measurable.conclusionMeasurable S.WProof (Lean source)
lemma measurable_W : Measurable S.W := S.Wvar.measurable_factual -
measurable_Ylemma — The factual outcome is measurable.conclusionMeasurable S.YProof (Lean source)
lemma measurable_Y : Measurable S.Y := S.Yvar.measurable_factual -
measurable_Ulemma — The factual latent confounder is measurable.conclusionMeasurable S.UProof (Lean source)
lemma measurable_U : Measurable S.U := S.Uvar.measurable_factual -
measurable_YofAlemma — The treatment-specific potential outcome is measurable.Proof (Lean source)
lemma measurable_YofA (a : Bool) : Measurable (S.YofA a) := S.Yvar.measurable_cfUnder S.Avar a -
measurable_AZXlemma — The treatment, treatment-side proxy, and covariate tuple is measurable.conclusionMeasurable S.AZXProof (Lean source)
lemma measurable_AZX : Measurable S.AZX := prodMk S.measurable_A (prodMk S.measurable_Z S.measurable_X) -
measurable_AUXlemma — The treatment, latent confounder, and covariate tuple is measurable.conclusionMeasurable S.AUXProof (Lean source)
lemma measurable_AUX : Measurable S.AUX := prodMk S.measurable_A (prodMk S.measurable_U S.measurable_X) -
measurable_UXlemma — The latent confounder and covariate tuple is measurable.conclusionMeasurable S.UXProof (Lean source)
lemma measurable_UX : Measurable S.UX := prodMk S.measurable_U S.measurable_X -
measurable_AZUXlemma — The treatment, treatment-side proxy, latent confounder, and covariate tuple is measurable.conclusionMeasurable S.AZUXProof (Lean source)
lemma measurable_AZUX : Measurable S.AZUX := prodMk S.measurable_A (prodMk S.measurable_Z (prodMk S.measurable_U S.measurable_X)) -
σ_AZX_lelemma — The sigma-algebra generated by treatment, treatment-side proxy, and covariate is a sub-sigma-algebra of the ambient space.conclusionS.σ_AZX ≤ (inferInstance : MeasurableSpace P.Ω)Proof (Lean source)
lemma σ_AZX_le : S.σ_AZX ≤ (inferInstance : MeasurableSpace P.Ω) := S.measurable_AZX.comap_le -
σ_AUX_lelemma — The sigma-algebra generated by treatment, latent confounder, and covariate is a sub-sigma-algebra of the ambient space.conclusionS.σ_AUX ≤ (inferInstance : MeasurableSpace P.Ω)Proof (Lean source)
lemma σ_AUX_le : S.σ_AUX ≤ (inferInstance : MeasurableSpace P.Ω) := S.measurable_AUX.comap_le -
σ_AZUX_lelemma — The sigma-algebra generated by treatment, treatment-side proxy, latent confounder, and covariate is a sub-sigma-algebra of the ambient space.conclusionS.σ_AZUX ≤ (inferInstance : MeasurableSpace P.Ω)Proof (Lean source)
lemma σ_AZUX_le : S.σ_AZUX ≤ (inferInstance : MeasurableSpace P.Ω) := S.measurable_AZUX.comap_le
Assumptions 2 core · 0 supporting This file states the proximal proxy assumptions for average treatment effect identification. ★ integrable_Y
Proximal Assumptions
This file states the proximal proxy assumptions for average treatment effect
identification. POProximalSystem.Assumptions bundles consistency, latent
exchangeability, outcome-side and treatment-side proxy restrictions, an outcome
bridge equation, arm positivity, treatment-arm completeness, and the
integrability conditions needed for the bridge representation.
The assumptions follow the Miao, Geng, and Tchetgen Tchetgen proximal
identification setup. The only exported lemma, Assumptions.integrable_Y, is a
compatibility projection showing that factual outcome integrability follows
from consistency and integrability of the two potential-outcome cells.
Proximal ATE assumption bundle (Miao–Geng–Tchetgen Tchetgen proximal identification, def:po-proximal-assumptions). For a proximal system with covariate, binary treatment, treatment-side and outcome-side proxies, outcome, and latent confounder, this packages consistency (SUTVA), latent exchangeability: each potential outcome is independent of treatment given the latent confounder and covariate, the two proxy restrictions that the outcome-side proxy carries no information about the outcome beyond treatment, latent confounder, and covariate and the treatment-side proxy is independent of treatment and the outcome-side proxy given the latent confounder and covariate, a measurable outcome bridge function h satisfying the bridge equation that the outcome minus h evaluated at treatment, outcome-side proxy, and covariate has zero mean conditional on treatment, treatment-side proxy, and covariate, a positivity condition that every latent-confounder-and-covariate- measurable event of positive probability meets each treatment arm with positive probability, a completeness condition that within each treatment arm, functions of the latent confounder and covariate with zero bridge-conditional mean vanish almost surely, and integrability of the two potential outcomes, the composite h(A,W,X), and the bridge function evaluated at each fixed treatment arm.
Definition (Lean source)
Compatibility projection. Under the proximal identifying assumption bundle, and given the treatment and outcome are distinct nodes, the factual outcome Y is integrable, as a consequence of the consistency assumption together with the integrability of the two potential-outcome cells Y(0) and Y(1).
Formal statement
Proof (Lean source)
Helpers 1 core · 10 supporting This file supplies the conditional-expectation reductions used by the proximal ATE theorem: dropping proxy or treatment coordinates under conditional independence, transporting consistency through event restrictions, and ★ consistency_event
Conditional-expectation helpers for proximal ATE
This file supplies the conditional-expectation reductions used by the proximal ATE theorem: dropping proxy or treatment coordinates under conditional independence, transporting consistency through event restrictions, and exposing both field-level and bundled forms for reuse by exact and partial proximal identification modules.
Factual-outcome bridge on the treatment-arm event. From the consistency assumption in the proximal identifying assumption bundle, and given the treatment and outcome are distinct nodes, on the event where the treatment equals arm a, the conditional expectation of the factual outcome given σ(A,U,X) agrees almost surely with the conditional expectation of the potential outcome Y(a) given the same σ-algebra, since Y = Y(a) pointwise there.
Formal statement
Proof (Lean source)
10 supporting declarations (lemmas, instances)
-
condExp_drop_Z'lemma — Field-level form: from proxy_YZ : Y ⟂ Z | (A,U,X) and integrability of Y, E[Y | σ(A,Z,U,X)] =ᵐ[μ] E[Y | σ(A,U,X)].hypothesesproxy_YZ :CondIndepFun S.σ_AUX S.σ_AUX_le S.Y S.Z μhYInt :Integrable S.Y μconclusionμ[S.Y | S.σ_AZUX] =ᵐ[μ] μ[S.Y | S.σ_AUX]Proof (Lean source)
lemma condExp_drop_Z' (proxy_YZ : CondIndepFun S.σ_AUX S.σ_AUX_le S.Y S.Z μ) (hYInt : Integrable S.Y μ) : μ[S.Y | S.σ_AZUX] =ᵐ[μ] μ[S.Y | S.σ_AUX] := by -- Show σ_AZUX = σ_AUX ⊔ comap S.Z. have hσ_eq : S.σ_AZUX = S.σ_AUX ⊔ comap S.Z inferInstance := by change comap (fun ω => (S.A ω, S.Z ω, S.U ω, S.X ω)) _ = _ rw [show (inferInstance : MeasurableSpace (Bool × γ_Z × γ_U × γ_X)) = (inferInstance : MeasurableSpace Bool).prod inferInstance from rfl, MeasurableSpace.comap_prodMk, show (inferInstance : MeasurableSpace (γ_Z × γ_U × γ_X)) = (inferInstance : MeasurableSpace γ_Z).prod inferInstance from rfl, MeasurableSpace.comap_prodMk] have hAUX : S.σ_AUX = comap S.A inferInstance ⊔ comap (fun ω => (S.U ω, S.X ω)) inferInstance := by change comap (fun ω => (S.A ω, S.U ω, S.X ω)) _ = _ rw [show (inferInstance : MeasurableSpace (Bool × γ_U × γ_X)) = (inferInstance : MeasurableSpace Bool).prod inferInstance from rfl, MeasurableSpace.comap_prodMk] rw [hAUX] ac_rfl rw [hσ_eq] exact condExp_sup_comap_eq_of_condIndep (m := S.σ_AUX) S.σ_AUX_le S.measurable_Z S.measurable_Y proxy_YZ (h := id) measurable_id (by simpa using hYInt) -
condExp_drop_Zlemma — From proxy_YZ : Y ⟂ Z | (A,U,X), conclude E[Y | σ(A,Z,U,X)] =ᵐ[μ] E[Y | σ(A,U,X)].hypothesesHA :Assumptions S μhAY :S.Avar.v ≠ S.Yvar.vconclusionμ[S.Y | S.σ_AZUX] =ᵐ[μ] μ[S.Y | S.σ_AUX]Proof (Lean source)
lemma condExp_drop_Z (HA : Assumptions S μ) (hAY : S.Avar.v ≠ S.Yvar.v) : μ[S.Y | S.σ_AZUX] =ᵐ[μ] μ[S.Y | S.σ_AUX] := condExp_drop_Z' HA.proxy_YZ (HA.integrable_Y hAY) -
condExp_h_drop_Z'lemma — Field-level form: from proxy_WAZ : W ⟂ (A,Z) | (U,X), measurability and arm-integrability of the bridge h, conclude E[h(a,W,X) | σ(A,Z,U,X)] =ᵐ[μ] E[h(a,W,X) | σ(A,U,X)].hypothesesh_fun :Bool × γ_W × γ_X → ℝproxy_WAZ :CondIndepFun S.σ_UX S.σ_UX_le S.W (fun ω => (S.A ω, S.Z ω)) μmeasurable_h :Measurable h_funa :h_int :Integrable (fun ω => h_fun (a, S.W ω, S.X ω)) μconclusionμ[fun ω => h_fun (a, S.W ω, S.X ω) | S.σ_AZUX]=ᵐ[μ] μ[fun ω => h_fun (a, S.W ω, S.X ω) | S.σ_AUX]Proof (Lean source)
lemma condExp_h_drop_Z' {h_fun : Bool × γ_W × γ_X → ℝ} (proxy_WAZ : CondIndepFun S.σ_UX S.σ_UX_le S.W (fun ω => (S.A ω, S.Z ω)) μ) (measurable_h : Measurable h_fun) (a : Bool) (h_int : Integrable (fun ω => h_fun (a, S.W ω, S.X ω)) μ) : μ[fun ω => h_fun (a, S.W ω, S.X ω) | S.σ_AZUX] =ᵐ[μ] μ[fun ω => h_fun (a, S.W ω, S.X ω) | S.σ_AUX] := by -- σ-algebra: σ_AZUX = σ_AUX ⊔ comap Z. have hσ_eq : S.σ_AZUX = S.σ_AUX ⊔ comap S.Z inferInstance := by change comap (fun ω => (S.A ω, S.Z ω, S.U ω, S.X ω)) _ = _ rw [show (inferInstance : MeasurableSpace (Bool × γ_Z × γ_U × γ_X)) = (inferInstance : MeasurableSpace Bool).prod inferInstance from rfl, MeasurableSpace.comap_prodMk, show (inferInstance : MeasurableSpace (γ_Z × γ_U × γ_X)) = (inferInstance : MeasurableSpace γ_Z).prod inferInstance from rfl, MeasurableSpace.comap_prodMk] have hAUX : S.σ_AUX = comap S.A inferInstance ⊔ comap (fun ω => (S.U ω, S.X ω)) inferInstance := by change comap (fun ω => (S.A ω, S.U ω, S.X ω)) _ = _ rw [show (inferInstance : MeasurableSpace (Bool × γ_U × γ_X)) = (inferInstance : MeasurableSpace Bool).prod inferInstance from rfl, MeasurableSpace.comap_prodMk] rw [hAUX] ac_rfl -- Weak union: W ⟂ (A,Z) | σ_UX ⇒ W ⟂ Z | σ_UX ⊔ comap A = σ_AUX. have hWZA : CondIndepFun S.σ_UX S.σ_UX_le S.W (fun ω => (S.Z ω, S.A ω)) μ := by have h := proxy_WAZ.comp (φ := id) (ψ := fun (p : Bool × γ_Z) => (p.2, p.1)) measurable_id (by fun_prop) simpa [Function.comp_def] using h have hWZ_AUX : CondIndepFun (S.σ_UX ⊔ comap S.A inferInstance) (sup_le S.σ_UX_le S.measurable_A.comap_le) S.W S.Z μ := condIndepFun_weak_union_of_prodMk S.σ_UX_le S.measurable_W S.measurable_Z S.measurable_A hWZA -- σ_AUX = σ_UX ⊔ comap A. have hσ_AUX : S.σ_AUX = S.σ_UX ⊔ comap S.A inferInstance := by change comap (fun ω => (S.A ω, S.U ω, S.X ω)) _ = _ rw [show (inferInstance : MeasurableSpace (Bool × γ_U × γ_X)) = (inferInstance : MeasurableSpace Bool).prod inferInstance from rfl, MeasurableSpace.comap_prodMk] exact sup_comm _ _ -- Cast hWZ_AUX to use σ_AUX. have hWZ_AUX' : CondIndepFun S.σ_AUX S.σ_AUX_le S.W S.Z μ := by convert hWZ_AUX -- X is σ_AUX-measurable. have hX_m : Measurable[S.σ_AUX] S.X := by change Measurable[comap S.AUX inferInstance] S.X intro s hs refine ⟨(fun p : Bool × γ_U × γ_X => p.2.2) ⁻¹' s, ?_, rfl⟩ exact (measurable_snd.comp measurable_snd) hs -- Lift to (W, X) ⟂ Z | σ_AUX. have hWX_Z : CondIndepFun S.σ_AUX S.σ_AUX_le (fun ω => (S.W ω, S.X ω)) S.Z μ := Causalean.condIndepFun_prodMk_of_measurable_left S.σ_AUX_le S.measurable_W S.measurable_Z hX_m hWZ_AUX' let h_comb : γ_W × γ_X → ℝ := fun p => h_fun (a, p.1, p.2) have h_comb_meas : Measurable h_comb := by have : Measurable (fun p : γ_W × γ_X => (a, p.1, p.2)) := by fun_prop exact measurable_h.comp this rw [hσ_eq] exact condExp_sup_comap_eq_of_condIndep (m := S.σ_AUX) S.σ_AUX_le S.measurable_Z (prodMk S.measurable_W S.measurable_X) hWX_Z h_comb_meas h_int -
condExp_h_drop_Zlemma — From proxy_WAZ : W ⟂ (A,Z) | (U,X), for any a : Bool, E[h(a,W,X) | σ(A,Z,U,X)] =ᵐ[μ] E[h(a,W,X) | σ(A,U,X)].hypothesesHA :Assumptions S μa :conclusionμ[fun ω => HA.h (a, S.W ω, S.X ω) | S.σ_AZUX]=ᵐ[μ] μ[fun ω => HA.h (a, S.W ω, S.X ω) | S.σ_AUX]Proof (Lean source)
lemma condExp_h_drop_Z (HA : Assumptions S μ) (a : Bool) : μ[fun ω => HA.h (a, S.W ω, S.X ω) | S.σ_AZUX] =ᵐ[μ] μ[fun ω => HA.h (a, S.W ω, S.X ω) | S.σ_AUX] := by have h_int : Integrable (fun ω => HA.h (a, S.W ω, S.X ω)) μ := by cases a · exact HA.integrable_h0WX · exact HA.integrable_h1WX exact condExp_h_drop_Z' HA.proxy_WAZ HA.measurable_h a h_int -
condExp_h_drop_A'lemma — Field-level form: from proxy_WA : W ⟂ A | (U,X), measurability and arm-integrability of the bridge h, conclude E[h(a,W,X) | σ(A,U,X)] =ᵐ[μ] E[h(a,W,X) | σ(U,X)].hypothesesh_fun :Bool × γ_W × γ_X → ℝproxy_WA :CondIndepFun S.σ_UX S.σ_UX_le S.W S.A μmeasurable_h :Measurable h_funa :h_int :Integrable (fun ω => h_fun (a, S.W ω, S.X ω)) μconclusionμ[fun ω => h_fun (a, S.W ω, S.X ω) | S.σ_AUX]=ᵐ[μ] μ[fun ω => h_fun (a, S.W ω, S.X ω) | S.σ_UX]Proof (Lean source)
lemma condExp_h_drop_A' {h_fun : Bool × γ_W × γ_X → ℝ} (proxy_WA : CondIndepFun S.σ_UX S.σ_UX_le S.W S.A μ) (measurable_h : Measurable h_fun) (a : Bool) (h_int : Integrable (fun ω => h_fun (a, S.W ω, S.X ω)) μ) : μ[fun ω => h_fun (a, S.W ω, S.X ω) | S.σ_AUX] =ᵐ[μ] μ[fun ω => h_fun (a, S.W ω, S.X ω) | S.σ_UX] := by -- σ-algebra: σ_AUX = σ_UX ⊔ comap A. have hσ_eq : S.σ_AUX = S.σ_UX ⊔ comap S.A inferInstance := by change comap (fun ω => (S.A ω, S.U ω, S.X ω)) _ = _ rw [show (inferInstance : MeasurableSpace (Bool × γ_U × γ_X)) = (inferInstance : MeasurableSpace Bool).prod inferInstance from rfl, MeasurableSpace.comap_prodMk] exact sup_comm _ _ -- X is σ_UX-measurable. have hX_m : Measurable[S.σ_UX] S.X := by change Measurable[comap S.UX inferInstance] S.X intro s hs exact ⟨Prod.snd ⁻¹' s, measurable_snd hs, rfl⟩ -- Lift to (W, X) ⟂ A | σ_UX. have hWX_A : CondIndepFun S.σ_UX S.σ_UX_le (fun ω => (S.W ω, S.X ω)) S.A μ := Causalean.condIndepFun_prodMk_of_measurable_left S.σ_UX_le S.measurable_W S.measurable_A hX_m proxy_WA let h_comb : γ_W × γ_X → ℝ := fun p => h_fun (a, p.1, p.2) have h_comb_meas : Measurable h_comb := by have : Measurable (fun p : γ_W × γ_X => (a, p.1, p.2)) := by fun_prop exact measurable_h.comp this rw [hσ_eq] exact condExp_sup_comap_eq_of_condIndep (m := S.σ_UX) S.σ_UX_le S.measurable_A (prodMk S.measurable_W S.measurable_X) hWX_A h_comb_meas h_int -
condExp_h_drop_Alemma — From proxy_WAZ : W ⟂ (A,Z) | (U,X), projecting to W ⟂ A | (U,X), E[h(a,W,X) | σ(A,U,X)] =ᵐ[μ] E[h(a,W,X) | σ(U,X)].hypothesesHA :Assumptions S μa :conclusionμ[fun ω => HA.h (a, S.W ω, S.X ω) | S.σ_AUX]=ᵐ[μ] μ[fun ω => HA.h (a, S.W ω, S.X ω) | S.σ_UX]Proof (Lean source)
lemma condExp_h_drop_A (HA : Assumptions S μ) (a : Bool) : μ[fun ω => HA.h (a, S.W ω, S.X ω) | S.σ_AUX] =ᵐ[μ] μ[fun ω => HA.h (a, S.W ω, S.X ω) | S.σ_UX] := by -- Project proxy_WAZ to W ⟂ A | σ_UX via .comp with Prod.fst. have hWA : CondIndepFun S.σ_UX S.σ_UX_le S.W S.A μ := by have h := HA.proxy_WAZ.comp (φ := id) (ψ := fst) measurable_id measurable_fst simpa [Function.comp_def] using h have h_int : Integrable (fun ω => HA.h (a, S.W ω, S.X ω)) μ := by cases a · exact HA.integrable_h0WX · exact HA.integrable_h1WX exact condExp_h_drop_A' hWA HA.measurable_h a h_int -
latent_exch_to_condExp'lemma — Field-level form: from latent_exch a : Y(a) ⟂ A | (U,X) and integrability of Y(a), conclude E[Y(a) | σ(A,U,X)] =ᵐ[μ] E[Y(a) | σ(U,X)].hypothesesconclusionμ[S.YofA a | S.σ_AUX] =ᵐ[μ] μ[S.YofA a | S.σ_UX]Proof (Lean source)
lemma latent_exch_to_condExp' (a : Bool) (latent_exch : CondIndepFun S.σ_UX S.σ_UX_le (S.YofA a) S.A μ) (hYaInt : Integrable (S.YofA a) μ) : μ[S.YofA a | S.σ_AUX] =ᵐ[μ] μ[S.YofA a | S.σ_UX] := by -- Show σ_AUX = σ_UX ⊔ comap S.A. have hσ_eq : S.σ_AUX = S.σ_UX ⊔ comap S.A inferInstance := by change comap (fun ω => (S.A ω, S.U ω, S.X ω)) _ = _ rw [show (inferInstance : MeasurableSpace (Bool × γ_U × γ_X)) = (inferInstance : MeasurableSpace Bool).prod inferInstance from rfl, MeasurableSpace.comap_prodMk] exact sup_comm _ _ rw [hσ_eq] exact condExp_sup_comap_eq_of_condIndep (m := S.σ_UX) S.σ_UX_le S.measurable_A (S.measurable_YofA a) latent_exch (h := id) measurable_id (by simpa using hYaInt) -
latent_exch_to_condExplemma — From latent_exch a : Y(a) ⟂ A | (U,X): E[Y(a) | σ(A,U,X)] =ᵐ[μ] E[Y(a) | σ(U,X)].hypothesesHA :Assumptions S μa :conclusionμ[S.YofA a | S.σ_AUX] =ᵐ[μ] μ[S.YofA a | S.σ_UX]Proof (Lean source)
lemma latent_exch_to_condExp (HA : Assumptions S μ) (a : Bool) : μ[S.YofA a | S.σ_AUX] =ᵐ[μ] μ[S.YofA a | S.σ_UX] := by have hYaInt : Integrable (S.YofA a) μ := by cases a · exact HA.integrable_YofA0 · exact HA.integrable_YofA1 exact latent_exch_to_condExp' a (HA.latent_exch a) hYaInt -
consistency_event'lemma — Field-level form: from consistency, integrability of Y and Y(a), on {A=a} we have E[Y | σ(A,U,X)] =ᵐ[μ.restrict {A=a}] E[Y(a) | σ(A,U,X)].hypothesesHC :POSystem.Consistency Pa :hAY :S.Avar.v ≠ S.Yvar.vhYInt :Integrable S.Y μhYaInt :Integrable (S.YofA a) μconclusionμ[S.Y | S.σ_AUX] =ᵐ[μ.restrict {ω | S.A ω = a}] μ[S.YofA a | S.σ_AUX]Proof (Lean source)
lemma consistency_event' (HC : POSystem.Consistency P) (a : Bool) (hAY : S.Avar.v ≠ S.Yvar.v) (hYInt : Integrable S.Y μ) (hYaInt : Integrable (S.YofA a) μ) : μ[S.Y | S.σ_AUX] =ᵐ[μ.restrict {ω | S.A ω = a}] μ[S.YofA a | S.σ_AUX] := by -- Step 1: Y =ᵐ[μ.restrict {A=a}] Y(a) pointwise from consistency. have hYeq : S.Y =ᵐ[μ.restrict {ω | S.A ω = a}] S.YofA a := by have hs : MeasurableSet {ω : P.Ω | S.A ω = a} := S.measurable_A (measurableSet_singleton a) apply ae_restrict_of_forall_mem hs intro ω hω exact (POVar.cf_eq_factual_on_event HC S.Yvar S.Avar a hAY.symm hω).symm set s : Set P.Ω := {ω | S.A ω = a} have hs_in_m : MeasurableSet[S.σ_AUX] s := by refine ⟨Prod.fst ⁻¹' {a}, ?_, ?_⟩ · exact measurable_fst (measurableSet_singleton a) · ext ω; rfl have hs : MeasurableSet s := S.measurable_A (measurableSet_singleton a) let h : P.Ω → ℝ := fun ω => S.Y ω - S.YofA a ω have hint : Integrable h μ := hYInt.sub hYaInt -- s.indicator h = 0 μ-a.e. have hind_zero : s.indicator h =ᵐ[μ] 0 := by have h_zero_on_s : h =ᵐ[μ.restrict s] 0 := by filter_upwards [hYeq] with ω hω simp [h, hω] simpa using Causalean.indicator_aeEq_of_aeEq_restrict hs h_zero_on_s have hh_zero_on_s : μ[h | S.σ_AUX] =ᵐ[μ.restrict s] 0 := by have hindCE_zero : s.indicator (μ[h | S.σ_AUX]) =ᵐ[μ] 0 := Causalean.condExp_indicator_aeEq_zero hs_in_m hint hind_zero have hindCE_zero' : s.indicator (μ[h | S.σ_AUX]) =ᵐ[μ] s.indicator (0 : P.Ω → ℝ) := by simpa using hindCE_zero simpa using Causalean.aeEq_restrict_of_indicator_aeEq hs hindCE_zero' have hCE_sub : μ[h | S.σ_AUX] =ᵐ[μ] μ[S.Y | S.σ_AUX] - μ[S.YofA a | S.σ_AUX] := MeasureTheory.condExp_sub (m := S.σ_AUX) hYInt hYaInt have hCE_sub_restrict : μ[h | S.σ_AUX] =ᵐ[μ.restrict s] μ[S.Y | S.σ_AUX] - μ[S.YofA a | S.σ_AUX] := ae_restrict_of_ae hCE_sub have hdiff_zero : (μ[S.Y | S.σ_AUX] - μ[S.YofA a | S.σ_AUX]) =ᵐ[μ.restrict s] 0 := hCE_sub_restrict.symm.trans hh_zero_on_s filter_upwards [hdiff_zero] with ω hω have : (μ[S.Y | S.σ_AUX]) ω - (μ[S.YofA a | S.σ_AUX]) ω = 0 := by simpa [Pi.sub_apply, Pi.zero_apply] using hω linarith -
eq_zero_globally_of_eq_zero_on_armlemma — From positivity_arm a and a σ_UX-measurable function that is μ-a.e. zero on the arm {A=a}, conclude it is μ-a.e. zero globally.hypothesesHA :Assumptions S μa :f :P.Ω → ℝhf_meas :Measurable[S.σ_UX] fhf_zero_on_arm :f =ᵐ[μ.restrict {ω | S.A ω = a}] 0conclusionf =ᵐ[μ] 0Proof (Lean source)
lemma eq_zero_globally_of_eq_zero_on_arm (HA : Assumptions S μ) (a : Bool) {f : P.Ω → ℝ} (hf_meas : Measurable[S.σ_UX] f) (hf_zero_on_arm : f =ᵐ[μ.restrict {ω | S.A ω = a}] 0) : f =ᵐ[μ] 0 := by set s : Set P.Ω := {ω | S.A ω = a} with hs_def have hs : MeasurableSet s := S.measurable_A (measurableSet_singleton a) -- Carrier B := {ω | f ω ≠ 0}, σ_UX-measurable. set B : Set P.Ω := {ω | f ω ≠ 0} with hB_def have hB_eq : B = f ⁻¹' {0}ᶜ := by ext ω; simp [B, hB_def] have hB_meas : MeasurableSet[S.σ_UX] B := by rw [hB_eq] exact hf_meas (MeasurableSet.compl (measurableSet_singleton (0 : ℝ))) -- arm hypothesis: μ(B ∩ s) = 0. have hB_meas' : MeasurableSet B := S.σ_UX_le _ hB_meas have hBs_zero : μ (B ∩ s) = 0 := by have h1 : (μ.restrict s) B = 0 := by have h := hf_zero_on_arm rw [EventuallyEq, MeasureTheory.ae_iff] at h rw [hB_def] simpa using h rwa [MeasureTheory.Measure.restrict_apply hB_meas'] at h1 -- positivity_arm gives μ B = 0, i.e. f =ᵐ[μ] 0. have hB_zero : μ B = 0 := HA.positivity_arm a B hB_meas hBs_zero rw [EventuallyEq, MeasureTheory.ae_iff] simpa [hB_def] using hB_zero
Main 2 core · 0 supporting This file proves the proximal causal identification equalities from the POProximalSystem.Assumptions bundle. ★ Eofyofa_eq_Eh★ ate_proximal
Proximal ATE Identification
This file proves the proximal causal identification equalities from the
POProximalSystem.Assumptions bundle. The theorem
Assumptions.Eofyofa_eq_Eh shows that each treatment-specific counterfactual
mean equals the corresponding bridge-function mean,
integral Y(a) = integral h(a,W,X). The theorem Assumptions.ate_proximal
then identifies the average treatment effect as
integral h(true,W,X) - integral h(false,W,X).
The proof uses the helper reductions from Proximal.Helpers, a Doob-Dynkin
factorization through (U,X), treatment-arm completeness, and arm positivity
to globalize the arm-wise bridge equality.
Proximal ATE identification (prop:po-proximal-ate step 1). Under the proximal identifying assumption bundle, including completeness within treatment level and integrability of the potential outcomes and bridge-function values, provided the treatment and outcome are distinct nodes, for each treatment level a the counterfactual mean outcome equals the mean of the proximal bridge function evaluated at that level: E[Y(a)] = E[h(a,W,X)].
Formal statement
Proof (Lean source)
Proximal ATE identification. Under the proximal identifying assumption bundle and given the treatment and outcome are distinct nodes, the average treatment effect E[Y(1)] − E[Y(0)] equals the bridge-function contrast E[h(1,W,X)] − E[h(0,W,X)].