PO.ID.Partial.Lee
Lee bounds: trimming bounds on treatment effects under sample selection with monotone response.
Setup 14 core · 8 supporting This file defines the potential-outcome data layer for Lee sample-selection bounds. ★ POLeeSystem★ measurable_YofA
Lee Bounds Setup
This file defines the potential-outcome data layer for Lee sample-selection bounds. It provides the treatment, selection, and outcome variables, their factual and counterfactual versions, the observed selected cells, and basic measurability facts.
The data layer for Lee (2009) bounds: a treatment-selection model in which a binary treatment A affects whether an outcome Y is observed at all, through a binary sample-selection indicator Sel. The outcome Y is only meaningful when Sel = true (e.g. a wage observed only for the employed), so the treatment effect on Y among the always-selected subpopulation is only partially identified — the object the Lee bounds bracket. Formally this packages, inside an ambient PO system P, the three nodes A, Sel, Y, the measurable identifications of their value spaces with Bool/Bool/ℝ, and the fact that the three nodes are distinct (def:po-lee-system).
Definition (Lean source)
Treatment packaged as a POVar valued in Bool.
Selection indicator packaged as a POVar valued in Bool.
Outcome packaged as a POVar valued in ℝ.
Definition (Lean source)
Counterfactual selection under treatment arm a.
Counterfactual outcome under treatment arm a.
Definition (Lean source)
Factual treatment.
Definition (Lean source)
Factual selection indicator.
Definition (Lean source)
Factual outcome.
Definition (Lean source)
The event {A = a}.
The event {Sel = s}.
The selected-treated cell {A = true, Sel = true}.
The selected-control cell {A = false, Sel = true}.
For a fixed treatment arm a, the counterfactual outcome Y(a) is measurable.
Formal statement
Proof (Lean source)
8 supporting declarations (lemmas, instances)
-
measurable_SelOfAlemma — Counterfactual selection under any fixed arm is measurable.Proof (Lean source)
lemma measurable_SelOfA (a : Bool) : Measurable (S.SelOfA a) := S.selVar.measurable_cfUnder S.aVar a -
measurable_factualAlemma — Factual treatment is measurable.conclusionMeasurable S.factualAProof (Lean source)
lemma measurable_factualA : Measurable S.factualA := S.aVar.measurable_factual -
measurable_factualSellemma — Factual selection is measurable.conclusionMeasurable S.factualSelProof (Lean source)
lemma measurable_factualSel : Measurable S.factualSel := S.selVar.measurable_factual -
measurable_factualYlemma — Factual outcome is measurable.conclusionMeasurable S.factualYProof (Lean source)
lemma measurable_factualY : Measurable S.factualY := S.yVar.measurable_factual -
measurableSet_aEventlemma — Each factual treatment arm event is measurable.Proof (Lean source)
lemma measurableSet_aEvent (a : Bool) : MeasurableSet (S.aEvent a) := S.aVar.measurableSet_event _ (measurableSet_singleton _) -
measurableSet_selEventlemma — Each factual selection event is measurable.Proof (Lean source)
lemma measurableSet_selEvent (s : Bool) : MeasurableSet (S.selEvent s) := S.selVar.measurableSet_event _ (measurableSet_singleton _) -
measurableSet_selectedTreatedlemma — The selected-treated observed cell is measurable.conclusionMeasurableSet S.selectedTreatedProof (Lean source)
lemma measurableSet_selectedTreated : MeasurableSet S.selectedTreated := (S.measurableSet_aEvent true).inter (S.measurableSet_selEvent true) -
measurableSet_selectedControllemma — The selected-control observed cell is measurable.conclusionMeasurableSet S.selectedControlProof (Lean source)
lemma measurableSet_selectedControl : MeasurableSet S.selectedControl := (S.measurableSet_aEvent false).inter (S.measurableSet_selEvent true)
Assumptions 3 core · 1 supporting This file defines the assumptions used for Lee sample-selection bounds. ★ integrableY
Lee Bounds Assumptions
This file defines the assumptions used for Lee sample-selection bounds. The baseline bundle contains consistency, pair-level random assignment, positivity, finiteness, and integrability conditions, while monotone selection is kept as a separate shape restriction.
The structure BaseAssumptions stores the consistency axiom, distributional
random-assignment condition for (Y(a), Sel(a)), positive selected cells and
treatment arms, finiteness of selected-cell measures, and integrability of the
two potential outcomes. Its helper lemmas integrable_YofA and integrableY
recover binary-indexed arm integrability and factual-outcome integrability. The
structure MonotoneSelection records the Lee monotonicity condition
Sel(0) <= Sel(1) almost surely.
Lee sample-selection baseline assumptions -- def:po-lee-assumptions.
Definition (Lean source)
Under the baseline Lee sample-selection assumptions — consistency, pair-level random assignment, positive and finite selected cells, and integrability of both potential outcomes Y(0), Y(1), the factual outcome Y is integrable, obtained from the arm integrability of Y(0), Y(1) via consistency (factualY = Σ_a Y(a)·1{A=a} a.e.), so it need not be assumed separately.
Formal statement
Proof (Lean source)
Monotone sample selection -- def:po-lee-assumptions, item 3. Sel(0) ≤ Sel(1) almost surely (with ≤ interpreted on Bool via the canonical false ≤ true order).
Definition (Lean source)
1 supporting declaration (lemmas, instances)
-
integrable_YofAlemma — Binary-folded form of integrableY1 / integrableY0.Proof (Lean source)
lemma integrable_YofA (hA : S.BaseAssumptions) (a : Bool) : Integrable (S.YofA a) P.μ := by cases a · exact hA.integrableY0 · exact hA.integrableY1
PrincipalStrata 6 core · 8 supporting This file defines the latent principal strata for Lee sample-selection bounds. ★ harmedSelected_ae_empty
Lee Principal Strata
This file defines the latent principal strata for Lee sample-selection bounds. It proves measurability and the monotone-selection event identities that relate the always-selected and treatment-induced-selected strata to observed and counterfactual selected sets.
The always-selected stratum contains units who would be selected under both control and treatment.
The helped-selected stratum contains units selected under treatment but not under control.
The harmed-selected stratum contains units selected under control but not under treatment.
The latent selected-under-treatment set contains units who would be selected if treated.
The latent selected-under-control set contains units who would be selected if untreated.
If sample selection is monotone, i.e. selection under control implies selection under treatment almost surely (Sel(0) ≤ Sel(1)), then the harmed-selected stratum — units who would be selected under control but not under treatment — has probability zero.
Formal statement
Proof (Lean source)
8 supporting declarations (lemmas, instances)
-
measurableSet_alwaysSelectedlemma — The always-selected stratum is measurable.conclusionMeasurableSet S.alwaysSelectedProof (Lean source)
lemma measurableSet_alwaysSelected : MeasurableSet S.alwaysSelected := by refine MeasurableSet.inter ?_ ?_ · exact (S.measurable_SelOfA false) (measurableSet_singleton true) · exact (S.measurable_SelOfA true) (measurableSet_singleton true) -
measurableSet_helpedSelectedlemma — The helped-selected stratum is measurable.conclusionMeasurableSet S.helpedSelectedProof (Lean source)
lemma measurableSet_helpedSelected : MeasurableSet S.helpedSelected := by refine MeasurableSet.inter ?_ ?_ · exact (S.measurable_SelOfA false) (measurableSet_singleton false) · exact (S.measurable_SelOfA true) (measurableSet_singleton true) -
measurableSet_harmedSelectedlemma — The harmed-selected stratum is measurable.conclusionMeasurableSet S.harmedSelectedProof (Lean source)
lemma measurableSet_harmedSelected : MeasurableSet S.harmedSelected := by refine MeasurableSet.inter ?_ ?_ · exact (S.measurable_SelOfA false) (measurableSet_singleton true) · exact (S.measurable_SelOfA true) (measurableSet_singleton false) -
measurableSet_selOfATrueSetlemma — The selected-under-treatment latent set is measurable.conclusionMeasurableSet S.selOfATrueSetProof (Lean source)
lemma measurableSet_selOfATrueSet : MeasurableSet S.selOfATrueSet := (S.measurable_SelOfA true) (measurableSet_singleton true) -
measurableSet_selOfAFalseSetlemma — The selected-under-control latent set is measurable.conclusionMeasurableSet S.selOfAFalseSetProof (Lean source)
lemma measurableSet_selOfAFalseSet : MeasurableSet S.selOfAFalseSet := (S.measurable_SelOfA false) (measurableSet_singleton true) -
selOfATrueSet_eq_alwaysSelected_union_helpedSelectedlemma — selOfATrueSet = alwaysSelected ∪ helpedSelected as a pure set equality (no a.s. needed -- the two RHS sets are disjoint and cover the LHS by case analysis on SelOfA false ω : Bool).conclusionS.selOfATrueSet = S.alwaysSelected ∪ S.helpedSelectedProof (Lean source)
lemma selOfATrueSet_eq_alwaysSelected_union_helpedSelected : S.selOfATrueSet = S.alwaysSelected ∪ S.helpedSelected := by ext ω simp only [selOfATrueSet, alwaysSelected, helpedSelected, Set.mem_setOf_eq, Set.mem_union] constructor · intro h rcases (S.SelOfA false ω).eq_false_or_eq_true with h0 | h0 · exact inl ⟨h0, h⟩ · exact inr ⟨h0, h⟩ · rintro (⟨_, h⟩ | ⟨_, h⟩) <;> exact h -
disjoint_alwaysSelected_helpedSelectedlemma — alwaysSelected and helpedSelected are disjoint.conclusionDisjoint S.alwaysSelected S.helpedSelected -
selOfAFalseSet_ae_eq_alwaysSelectedlemma — Under monotone sample selection, {Sel(0)=true} =ᵐ alwaysSelected.hypothesesconclusionS.selOfAFalseSet =ᵐ[P.μ] S.alwaysSelectedProof (Lean source)
lemma selOfAFalseSet_ae_eq_alwaysSelected (hMono : ∀ᵐ ω ∂P.μ, S.SelOfA false ω ≤ S.SelOfA true ω) : S.selOfAFalseSet =ᵐ[P.μ] S.alwaysSelected := by -- The target equality is `{ω | SelOfA false ω = true} =ᵐ alwaysSelected`. -- alwaysSelected ⊆ {Sel(0)=true} is purely set-level (the first -- conjunct of alwaysSelected is exactly Sel(0)=true). -- For the reverse direction, on the co-null set where Sel(0) ≤ Sel(1), -- Sel(0)=true ⇒ Sel(1)=true (since true ≤ Sel(1) forces Sel(1)=true on Bool), -- so {Sel(0)=true} ⊆ alwaysSelected on that co-null set. -- Proof recipe: use `EventuallyEq` (i.e. `=ᵐ[μ]`) in the form -- `Set.eventuallyEq_iff_indicator` or just the symmetric-difference null -- characterisation, then bound the offending sym-diff by a subset of the -- complement of the a.s. set from `hMono`. filter_upwards [hMono] with ω hω apply propext simp only [selOfAFalseSet, alwaysSelected] constructor · intro hsel exact ⟨hsel, by have hsel' : S.SelOfA false ω = true := hsel cases htrue : S.SelOfA true ω · have hle : true ≤ false := by simpa [hsel', htrue] using hω exact elim ((by decide : ¬ (true ≤ false)) hle) · rfl⟩ · intro h exact h.1
Trim 10 core · 0 supporting This file defines the observable finite-support functionals used in Lee sample selection bounds.
Lee Finite-Support Trim Functionals
This file defines the observable finite-support functionals used in Lee sample
selection bounds. It introduces the selected-cell probabilities p0 and p1,
the trimming ratio rho, the selected-treated outcome mass function f1,
feasible LeeTrimWeights, their mean functional Mw, the lower and upper
trimmed means lowerTrimMean and upperTrimMean, and the selected-control
mean m0.
The constructed always-selected trim weight and its identification theorem live
in TrimWeight.lean and TrimMean.lean.
Conditional selection probability p_a := P(Sel = true | A = a) expressed via the event-conditional expectation of the selection indicator.
Definition (Lean source)
p₀ = P(Sel = true | A = false).
Definition (Lean source)
p₁ = P(Sel = true | A = true).
Definition (Lean source)
The trimming ratio ρ := p₀ / p₁.
Definition (Lean source)
Observable conditional density of the outcome at y among selected treated units: f₁(y) := P(Y = y | A = true, Sel = true).
Definition (Lean source)
A Lee trim weight on a finite outcome support 𝒴 -- def:po-lee-trim.
Definition (Lean source)
The trimmed mean associated with a Lee trim weight: M(w) := ρ⁻¹ · ∑_{y ∈ 𝒴} y · w(y) · f₁(y).
Lower trimmed mean underline_m₁ := inf_{w} M(w) ranging over Lee trim weights on 𝒴.
Definition (Lean source)
Upper trimmed mean overline_m₁ := sup_{w} M(w) ranging over Lee trim weights on 𝒴.
Definition (Lean source)
Observable selected-control outcome mean m₀ := E[Y | A = false, Sel = true].
Definition (Lean source)
TrimWeight 2 core · 0 supporting This file constructs the outcome weights that represent the always-selected treated subpopulation in Lee's sample-selection bounds.
Lee Trim Weights
This file constructs the outcome weights that represent the always-selected
treated subpopulation in Lee's sample-selection bounds. It defines the
always-selected conditional mass function f1AS and constructs
alwaysSelectedTrimWeight, the feasible Lee trim weight
w(y) = rho * f1AS y / f1 y on the finite selected-treated support.
The construction uses the selected-treated mixture identity and the finite
support transfer for the latent always-selected stratum. The mean identity and
trimmed-mean sandwich are proved in TrimMean.lean and TrimBound.lean.
Conditional density of Y(1) on alwaysSelected evaluated at y, expressed as an eventCondExp of an indicator of Y(1) = y.
Definition (Lean source)
The conditional sub-distribution of mass ρ of Y(1) | AS, viewed as a Lee trim weight on 𝒴. The construction yields a LeeTrimWeight whose mean Mw equals E[Y(1) | alwaysSelected].
Definition (Lean source)
ControlMean 1 core · 0 supporting This file proves the Lee-bounds control-arm identification step. ★ m0_eq_eventCondExp_Y0_alwaysSelected
Lee bounds control-arm mean identity
This file proves the Lee-bounds control-arm identification step. Under
consistency, random assignment, and monotone selection, the observable selected
control mean equals the latent mean of Y(0) among always-selected units.
The public lemma m0_eq_eventCondExp_Y0_alwaysSelected rewrites the observable
selected-control mean m0 as eventCondExp P.μ alwaysSelected (YofA false).
The proof first uses consistency to replace factual outcomes and selection on
the selected-control cell, then uses pair-level random assignment to drop the
conditioning on treatment assignment, and finally uses monotone selection to
identify control selection with the always-selected stratum.
Under the baseline Lee assumptions (consistency and pair-level random assignment of the factual treatment to each (Y(a), Sel(a))) together with monotone sample selection, Sel(0) ≤ Sel(1) almost surely, the observable selected-control mean m₀ = E[Y | A = false, Sel = true] equals the latent conditional mean E[Y(0) | alwaysSelected] of the control potential outcome among units who would be selected under either treatment arm.
Formal statement
Proof (Lean source)
LatentSupport 1 core · 0 supporting This file proves that finite support observed among selected treated units transfers to the treated potential outcome on the always-selected and treatment-induced-selected latent strata. ★ YofA_true_in_finset_ae_alwaysSelected
Lee Latent Support Transfer
This file proves that finite support observed among selected treated units transfers to the treated potential outcome on the always-selected and treatment-induced-selected latent strata. The support transfer supplies the finite normalisation needed by the trim-weight construction.
The public lemma YofA_true_in_finset_ae_alwaysSelected starts from an
almost-sure finite-support hypothesis for the factual outcome restricted to the
observable selected-treated cell. Using consistency and pair-level random
assignment, it proves that YofA true lies in the same finite support almost
surely on both alwaysSelected and helpedSelected.
Support transfer. Under the baseline Lee assumptions, if the factual outcome lies a.e. in a finite support set 𝒴, when restricted to the observable selected-treated cell, then the latent treated potential outcome Y(1) lies a.e. in the same support 𝒴, both on the always-selected stratum and on the helped-selected stratum. This feeds the sum_eq field of alwaysSelectedTrimWeight, which needs ∑ y ∈ 𝒴, f1AS y = 1.
Formal statement
Proof (Lean source)
Main 1 core · 0 supporting This file proves the final Lee bound for the average treatment effect among always-selected units. ★ lee_bounds_ATT_AS
Lee Bounds
This file proves the final Lee bound for the average treatment effect among always-selected units. Under the Lee sample-selection assumptions, it combines the selected-control mean identity with the treated trimmed-mean bounds to sandwich the always-selected treatment effect.
The public theorem lee_bounds_ATT_AS states the finite-support Lee sandwich:
lowerTrimMean 𝒴 - m0 is a lower bound and upperTrimMean 𝒴 - m0 is an
upper bound for the conditional mean of Y(1) - Y(0) on alwaysSelected. The
proof assembles the control mean identity, selected-treated decomposition,
latent finite-support transfer, and trim-weight sandwich developed in the
preceding Lee modules.
Finite-support Lee bounds -- prop:po-lee-bounds. Under the baseline Lee sample-selection assumptions, monotone sample selection, and almost-sure finite support 𝒴 for the factual outcome on the selected-treated cell, the average treatment effect among always-selected units — those who would be selected for observation whether treated or not — is sandwiched between the lower Lee trimmed mean minus the observable selected-control mean m₀, and the upper Lee trimmed mean minus m₀.
Formal statement
Proof (Lean source)
MixtureIdentity 1 core · 2 supporting This file decomposes the observable selected-treated cell into always-selected and helped-selected latent strata. ★ selectedTreated_measure_split
Lee bounds selected-treated mixture identities
This file decomposes the observable selected-treated cell into always-selected and helped-selected latent strata. The integral, mass, and indicator versions combine consistency, random assignment, and monotone selection to prepare the trim-weight construction.
The lemma selectedTreated_integral_split expresses the selected-treated
factual-outcome integral as the treatment-arm probability times the sum of
Y(1) integrals over alwaysSelected and helpedSelected. The lemma
selectedTreated_measure_split is the corresponding mass identity and feeds the
Lee trimming ratio. The lemma selectedTreated_integral_split_indicator repeats
the same decomposition for outcome indicators, which is needed to build and
normalize the always-selected trim-weight witness.
Under the baseline Lee sample-selection assumptions, the probability mass of the observable selected-treated cell equals the probability of being treated times the sum of the probability masses of the two latent strata always-selected and helped-selected. This is the analog of selectedTreated_integral_split for the constant function 1, and it is what gives ρ = μ(AS) / μ({Sel(1)=true}).
Formal statement
Proof (Lean source)
2 supporting declarations (lemmas, instances)
-
selectedTreated_integral_splitlemma — Selected-treated integral split — the f = factualY analogue of selectedTreated_measure_split (Step B'). Consistency on {A=true, Sel=true} rewrites factualY to YofA true; pair random assignment A ⫫ (Y(1), Sel(1)) then drops the {A=true} conditioning and introduces the scalar factor (P.μ (S.aEvent true)).toReal; the latent {Sel(1)=true} set then splits as the disjoint union of alwaysSelected and helpedSelected.hypotheseshA :S.BaseAssumptionsProof (Lean source)
lemma selectedTreated_integral_split (hA : S.BaseAssumptions) : ∫ ω in S.selectedTreated, S.factualY ω ∂P.μ = (P.μ (S.aEvent true)).toReal * (∫ ω in S.alwaysSelected, S.YofA true ω ∂P.μ + ∫ ω in S.helpedSelected, S.YofA true ω ∂P.μ) := by have hSelectedTreated : S.selectedTreated = S.aEvent true ∩ S.selOfATrueSet := by ext ω constructor · intro hω have hsel_cf : S.SelOfA true ω = S.factualSel ω := POVar.cf_eq_factual_on_event hA.consistency S.selVar S.aVar true S.hASel.symm hω.1 exact ⟨hω.1, by simpa [selOfATrueSet, selEvent, POVar.event, factualSel, hsel_cf] using hω.2⟩ · intro hω have hsel_cf : S.SelOfA true ω = S.factualSel ω := POVar.cf_eq_factual_on_event hA.consistency S.selVar S.aVar true S.hASel.symm hω.1 exact ⟨hω.1, by simpa [selOfATrueSet, selEvent, POVar.event, factualSel, hsel_cf] using hω.2⟩ have hfac : ∀ ω ∈ S.selectedTreated, S.factualY ω = S.YofA true ω := by intro ω hω have hcf : S.YofA true ω = S.factualY ω := POVar.cf_eq_factual_on_event hA.consistency S.yVar S.aVar true S.hAY.symm hω.1 exact hcf.symm have hIntFac : ∫ ω in S.selectedTreated, S.factualY ω ∂P.μ = ∫ ω in S.selectedTreated, S.YofA true ω ∂P.μ := by apply MeasureTheory.setIntegral_congr_fun S.measurableSet_selectedTreated intro ω hω exact hfac ω hω have hpair_meas : Measurable (fun ω => (S.YofA true ω, S.SelOfA true ω)) := prodMk (S.measurable_YofA true) (S.measurable_SelOfA true) have hselSet_pair : MeasurableSet {p : ℝ × Bool | p.2 = true} := measurable_snd (measurableSet_singleton true) have hφ_meas : Measurable (fun p : ℝ × Bool => if p.2 = true then p.1 else (0 : ℝ)) := by exact Measurable.ite hselSet_pair measurable_fst measurable_const have hφ_indicator : (fun ω => if S.SelOfA true ω = true then S.YofA true ω else (0 : ℝ)) = S.selOfATrueSet.indicator (S.YofA true) := by funext ω by_cases hω : S.SelOfA true ω = true · simp [selOfATrueSet, hω] · simp [selOfATrueSet, hω] have hdrop : ∫ ω in S.aEvent true ∩ S.selOfATrueSet, S.YofA true ω ∂P.μ = (P.μ (S.aEvent true)).toReal * ∫ ω in S.selOfATrueSet, S.YofA true ω ∂P.μ := by have hraw_num : ∫ ω in S.aEvent true, S.selOfATrueSet.indicator (S.YofA true) ω ∂P.μ = (P.μ (S.aEvent true)).toReal * ∫ ω, S.selOfATrueSet.indicator (S.YofA true) ω ∂P.μ := by have hraw := (hA.randAssign true).integral_restrict_preimage_eq_mul S.measurable_factualA.aemeasurable hpair_meas.aemeasurable (measurableSet_singleton true) (S.measurable_factualA (measurableSet_singleton true)) hφ_meas.aestronglyMeasurable simpa [aEvent, factualA, POVar.event, hφ_indicator] using hraw rw [← MeasureTheory.setIntegral_indicator S.measurableSet_selOfATrueSet, ← MeasureTheory.integral_indicator S.measurableSet_selOfATrueSet] exact hraw_num have hsplit : ∫ ω in S.selOfATrueSet, S.YofA true ω ∂P.μ = ∫ ω in S.alwaysSelected, S.YofA true ω ∂P.μ + ∫ ω in S.helpedSelected, S.YofA true ω ∂P.μ := by rw [S.selOfATrueSet_eq_alwaysSelected_union_helpedSelected] exact MeasureTheory.setIntegral_union S.disjoint_alwaysSelected_helpedSelected S.measurableSet_helpedSelected hA.integrableY1.integrableOn hA.integrableY1.integrableOn calc ∫ ω in S.selectedTreated, S.factualY ω ∂P.μ = ∫ ω in S.selectedTreated, S.YofA true ω ∂P.μ := hIntFac _ = ∫ ω in S.aEvent true ∩ S.selOfATrueSet, S.YofA true ω ∂P.μ := by rw [hSelectedTreated] _ = (P.μ (S.aEvent true)).toReal * ∫ ω in S.selOfATrueSet, S.YofA true ω ∂P.μ := hdrop _ = (P.μ (S.aEvent true)).toReal * (∫ ω in S.alwaysSelected, S.YofA true ω ∂P.μ + ∫ ω in S.helpedSelected, S.YofA true ω ∂P.μ) := by rw [hsplit] -
selectedTreated_integral_split_indicatorlemma — Step B for the indicator integrand 1_{factualY = y} — same shape as selectedTreated_integral_split but with the indicator integrand. Used by the le_one and sum_eq fields of alwaysSelectedTrimWeight. Proof mirrors Step B; the only change is the integrand.hypotheseshA :S.BaseAssumptionsy :ℝProof (Lean source)
lemma selectedTreated_integral_split_indicator (hA : S.BaseAssumptions) (y : ℝ) : ∫ ω in S.selectedTreated, (if S.factualY ω = y then (1 : ℝ) else 0) ∂P.μ = (P.μ (S.aEvent true)).toReal * (∫ ω in S.alwaysSelected, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ + ∫ ω in S.helpedSelected, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ) := by have hSelectedTreated : S.selectedTreated = S.aEvent true ∩ S.selOfATrueSet := by ext ω constructor · intro hω have hsel_cf : S.SelOfA true ω = S.factualSel ω := POVar.cf_eq_factual_on_event hA.consistency S.selVar S.aVar true S.hASel.symm hω.1 exact ⟨hω.1, by simpa [selOfATrueSet, selEvent, POVar.event, factualSel, hsel_cf] using hω.2⟩ · intro hω have hsel_cf : S.SelOfA true ω = S.factualSel ω := POVar.cf_eq_factual_on_event hA.consistency S.selVar S.aVar true S.hASel.symm hω.1 exact ⟨hω.1, by simpa [selOfATrueSet, selEvent, POVar.event, factualSel, hsel_cf] using hω.2⟩ have hfac : ∀ ω ∈ S.selectedTreated, S.factualY ω = S.YofA true ω := by intro ω hω have hcf : S.YofA true ω = S.factualY ω := POVar.cf_eq_factual_on_event hA.consistency S.yVar S.aVar true S.hAY.symm hω.1 exact hcf.symm have hIntFac : ∫ ω in S.selectedTreated, (if S.factualY ω = y then (1 : ℝ) else 0) ∂P.μ = ∫ ω in S.selectedTreated, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ := by apply MeasureTheory.setIntegral_congr_fun S.measurableSet_selectedTreated intro ω hω simp [hfac ω hω] have hInd_meas : Measurable (fun ω => if S.YofA true ω = y then (1 : ℝ) else 0) := by exact Measurable.ite ((S.measurable_YofA true) (measurableSet_singleton y)) measurable_const measurable_const have hInd_int : Integrable (fun ω => if S.YofA true ω = y then (1 : ℝ) else 0) P.μ := by refine MeasureTheory.Integrable.of_bound hInd_meas.aestronglyMeasurable 1 (Filter.Eventually.of_forall ?_) intro ω by_cases hω : S.YofA true ω = y · simp [hω] · simp [hω] have hpair_meas : Measurable (fun ω => (S.YofA true ω, S.SelOfA true ω)) := prodMk (S.measurable_YofA true) (S.measurable_SelOfA true) have hselSet_pair : MeasurableSet {p : ℝ × Bool | p.2 = true} := measurable_snd (measurableSet_singleton true) have hySet_pair : MeasurableSet {p : ℝ × Bool | p.1 = y} := measurable_fst (measurableSet_singleton y) have hφ_meas : Measurable (fun p : ℝ × Bool => if p.2 = true then (if p.1 = y then (1 : ℝ) else 0) else 0) := by exact Measurable.ite hselSet_pair (Measurable.ite hySet_pair measurable_const measurable_const) measurable_const have hφ_indicator : (fun ω => if S.SelOfA true ω = true then (if S.YofA true ω = y then (1 : ℝ) else 0) else 0) = S.selOfATrueSet.indicator (fun ω => if S.YofA true ω = y then (1 : ℝ) else 0) := by funext ω by_cases hω : S.SelOfA true ω = true · simp [selOfATrueSet, hω] · simp [selOfATrueSet, hω] have hdrop : ∫ ω in S.aEvent true ∩ S.selOfATrueSet, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ = (P.μ (S.aEvent true)).toReal * ∫ ω in S.selOfATrueSet, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ := by have hraw_num : ∫ ω in S.aEvent true, S.selOfATrueSet.indicator (fun ω => if S.YofA true ω = y then (1 : ℝ) else 0) ω ∂P.μ = (P.μ (S.aEvent true)).toReal * ∫ ω, S.selOfATrueSet.indicator (fun ω => if S.YofA true ω = y then (1 : ℝ) else 0) ω ∂P.μ := by have hraw := (hA.randAssign true).integral_restrict_preimage_eq_mul S.measurable_factualA.aemeasurable hpair_meas.aemeasurable (measurableSet_singleton true) (S.measurable_factualA (measurableSet_singleton true)) hφ_meas.aestronglyMeasurable simpa [aEvent, factualA, POVar.event, hφ_indicator] using hraw rw [← MeasureTheory.setIntegral_indicator S.measurableSet_selOfATrueSet, ← MeasureTheory.integral_indicator S.measurableSet_selOfATrueSet] exact hraw_num have hsplit : ∫ ω in S.selOfATrueSet, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ = ∫ ω in S.alwaysSelected, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ + ∫ ω in S.helpedSelected, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ := by rw [S.selOfATrueSet_eq_alwaysSelected_union_helpedSelected] exact MeasureTheory.setIntegral_union S.disjoint_alwaysSelected_helpedSelected S.measurableSet_helpedSelected hInd_int.integrableOn hInd_int.integrableOn calc ∫ ω in S.selectedTreated, (if S.factualY ω = y then (1 : ℝ) else 0) ∂P.μ = ∫ ω in S.selectedTreated, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ := hIntFac _ = ∫ ω in S.aEvent true ∩ S.selOfATrueSet, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ := by rw [hSelectedTreated] _ = (P.μ (S.aEvent true)).toReal * ∫ ω in S.selOfATrueSet, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ := hdrop _ = (P.μ (S.aEvent true)).toReal * (∫ ω in S.alwaysSelected, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ + ∫ ω in S.helpedSelected, (if S.YofA true ω = y then (1 : ℝ) else 0) ∂P.μ) := by rw [hsplit]
TrimBound 1 core · 0 supporting This file proves that the conditional mean of the treated potential outcome among always-selected units is bounded by the lower and upper Lee trimmed means. ★ trimmed_bounds_condExp_Y1_AS
Lee Trimmed-Mean Bound
This file proves that the conditional mean of the treated potential outcome among always-selected units is bounded by the lower and upper Lee trimmed means. The result turns the constructed always-selected trim weight into the scalar sandwich used by the final Lee bound.
The argument is an order-theoretic consequence of the trimmed-mean range and the identity between the trim-weight mean and the always-selected conditional mean.
The Lee trimmed-mean sandwich for the always-selected treated mean. Given the baseline Lee assumptions, monotone sample selection, and almost-sure finite support 𝒴 for the factual outcome on the selected-treated cell, the conditional mean E[Y(1) | alwaysSelected] of the treated potential outcome among always-selected units lies between the lower and upper Lee trimmed means computed over all feasible Lee trim weights on that support.
Formal statement
Proof (Lean source)
TrimMean 1 core · 0 supporting This file proves that the trimmed mean associated with the always-selected trim weight equals the conditional mean of the treated potential outcome on the always-selected latent stratum. ★ Mw_alwaysSelectedTrimWeight_eq_condExp_Y1_AS
Lee Trimmed Mean Identity
This file proves that the trimmed mean associated with the always-selected trim weight equals the conditional mean of the treated potential outcome on the always-selected latent stratum. The result connects the finite-support trim weight construction to the target latent mean used in Lee bounds.
The constructed always-selected trim weight has the target latent mean. Given the baseline Lee assumptions, monotone sample selection, and almost-sure finite support 𝒴 for the factual outcome on the selected-treated cell, evaluating the trim-weight mean functional Mw at the constructed always-selected trim weight recovers exactly the conditional mean E[Y(1) | alwaysSelected] of the treated potential outcome among always-selected units.