PO.ID.Partial.Balke­Pearl.Attainment

This module collects the explicit latent tables witnessing that each of the sixteen Balke-Pearl closed-form expressions is achieved by an observationally equivalent model, on the region of observed distributions where th

Basic 1 core · 1 supporting Observed cell probabilities form a distribution per instrument value ★ sum_cellProb_eq_one

Observed cell probabilities form a distribution per instrument value

lemma sum_cellProb_eq_one reviewed
Causalean.PO.POBalkePearlSystem

Under the Balke-Pearl IV base assumptions, for every instrument value z, the four observed outcome-treatment cell probabilities sum to one.

Formal statement
hA :
S.BaseAssumptions
z :
∑ y : Bool, ∑ d : Bool, S.cellProb y d z = 1
Proof (Lean source)
lemma sum_cellProb_eq_one (hA : S.BaseAssumptions) (z : Bool) : ∑ y : Bool, ∑ d : Bool, S.cellProb y d z = 1 := by have h : ∀ y d, S.cellProb y d z = _ := fun y d => S.cellProb_eq_sum_latent hA y d z have hs := S.latentProb_sum_eq_one simp only [Fintype.sum_bool] at hs simp only [Fintype.sum_bool, h] cases z <;> simp only [dArm, yArm, Fintype.sum_bool] <;> norm_num <;> linarith [hs]
1 supporting declaration (lemmas, instances)
Lower 15 core · 16 supporting Witnesses attaining the Balke-Pearl lower expressions ★ bpLower_mem_BPIdentifiedInterval

Witnesses attaining the Balke-Pearl lower expressions

def bpAux0t reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice t in the witness attaining bpLowerTerm 0.

Definition (Lean source)
noncomputable def bpAux0t (S : POBalkePearlSystem P) : ℝ := max 0 (S.cellProb false false true + S.cellProb false true true - S.cellProb false false false - S.cellProb true false false )
def bpLowerWitness0 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpLowerTerm 0.

Definition (Lean source)
noncomputable def bpLowerWitness0 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, false => S.cellProb false false true | false, false, true, false => S.cellProb false false false - S.cellProb false false true - S.cellProb false true true + S.cellProb true false false + S.bpAux0t | false, true, false, false => S.cellProb false false false - S.cellProb false false true | false, true, true, false => -S.cellProb false false false + S.cellProb false false true + S.cellProb false true true - S.bpAux0t | true, false, true, false => S.cellProb false true false - S.bpAux0t | true, false, true, true => -S.cellProb false false false + S.cellProb false false true - S.cellProb false true false + S.cellProb false true true - S.cellProb true false false + S.cellProb true false true | true, true, true, false => S.bpAux0t | true, true, true, true => 1 - S.cellProb false false true - S.cellProb false true true - S.cellProb true false true | _, _, _, _ => 0
def bpAux1v reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice v in the witness attaining bpLowerTerm 1.

Definition (Lean source)
noncomputable def bpAux1v (S : POBalkePearlSystem P) : ℝ := max 0 (S.cellProb false false false - S.cellProb false false true + S.cellProb false true false - S.cellProb true false true )
def bpLowerWitness1 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpLowerTerm 1.

Definition (Lean source)
noncomputable def bpLowerWitness1 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, false => S.cellProb false false false | false, false, true, false => -S.cellProb false false false + S.cellProb false false true - S.cellProb false true false + S.cellProb true false true + S.bpAux1v | false, true, true, false => S.cellProb false true true - S.bpAux1v | false, true, true, true => S.cellProb false false false - S.cellProb false false true + S.cellProb false true false - S.cellProb false true true + S.cellProb true false false - S.cellProb true false true | true, false, false, false => -S.cellProb false false false + S.cellProb false false true | true, false, true, false => S.cellProb false false false - S.cellProb false false true + S.cellProb false true false - S.bpAux1v | true, true, true, false => S.bpAux1v | true, true, true, true => 1 - S.cellProb false false false - S.cellProb false true false - S.cellProb true false false | _, _, _, _ => 0
def bpAux2u reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice u in the witness attaining bpLowerTerm 2.

Definition (Lean source)
noncomputable def bpAux2u (S : POBalkePearlSystem P) : ℝ := max 0 (S.cellProb false true true - S.cellProb false true false - S.cellProb true false false + S.cellProb true false true )
def bpAux2v reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice v in the witness attaining bpLowerTerm 2.

Definition (Lean source)
noncomputable def bpAux2v (S : POBalkePearlSystem P) : ℝ := max 0 (S.cellProb false true true - S.cellProb true false false )
def bpLowerWitness2 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpLowerTerm 2.

Definition (Lean source)
noncomputable def bpLowerWitness2 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, false => S.cellProb false false false | false, false, true, false => -S.cellProb false true true + S.cellProb true false false + S.bpAux2v | false, true, true, false => S.cellProb false true true - S.bpAux2v | true, false, false, false => S.cellProb false true false - S.cellProb false true true + S.cellProb true false false - S.cellProb true false true + S.bpAux2u | true, false, false, true => -S.cellProb false false false + S.cellProb false false true - S.cellProb false true false + S.cellProb false true true - S.cellProb true false false + S.cellProb true false true - S.bpAux2u | true, false, true, false => S.cellProb false true true - S.cellProb true false false + S.cellProb true false true - S.bpAux2u - S.bpAux2v | true, false, true, true => S.bpAux2u | true, true, true, false => S.bpAux2v | true, true, true, true => 1 - S.cellProb false false true - S.cellProb false true true - S.cellProb true false true | _, _, _, _ => 0
def bpAux3u reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice u in the witness attaining bpLowerTerm 3.

Definition (Lean source)
noncomputable def bpAux3u (S : POBalkePearlSystem P) : ℝ := max 0 (S.cellProb false true false - S.cellProb false true true + S.cellProb true false false - S.cellProb true false true )
def bpAux3v reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice v in the witness attaining bpLowerTerm 3.

Definition (Lean source)
noncomputable def bpAux3v (S : POBalkePearlSystem P) : ℝ := max 0 (S.cellProb false true false - S.cellProb true false true )
def bpLowerWitness3 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpLowerTerm 3.

Definition (Lean source)
noncomputable def bpLowerWitness3 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, false => S.cellProb false false true | false, false, true, false => -S.cellProb false true false + S.cellProb true false true + S.bpAux3v | false, true, false, false => -S.cellProb false true false + S.cellProb false true true - S.cellProb true false false + S.cellProb true false true + S.bpAux3u | false, true, false, true => S.cellProb false false false - S.cellProb false false true + S.cellProb false true false - S.cellProb false true true + S.cellProb true false false - S.cellProb true false true - S.bpAux3u | false, true, true, false => S.cellProb false true false + S.cellProb true false false - S.cellProb true false true - S.bpAux3u - S.bpAux3v | false, true, true, true => S.bpAux3u | true, false, true, false => S.cellProb false true false - S.bpAux3v | true, true, true, false => S.bpAux3v | true, true, true, true => 1 - S.cellProb false false false - S.cellProb false true false - S.cellProb true false false | _, _, _, _ => 0
def bpLowerWitness4 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpLowerTerm 4.

Definition (Lean source)
noncomputable def bpLowerWitness4 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, false => S.cellProb false false false + S.cellProb false true false - S.cellProb false true true + S.cellProb true false false | false, true, false, false => -S.cellProb false true false + S.cellProb false true true - S.cellProb true false false | false, true, true, false => S.cellProb true false false | true, false, false, true => -S.cellProb false false false + S.cellProb false false true - S.cellProb false true false + S.cellProb false true true - S.cellProb true false false | true, false, true, true => S.cellProb true false true | true, true, true, false => S.cellProb false true false | true, true, true, true => 1 - S.cellProb false false true - S.cellProb false true true - S.cellProb true false true | _, _, _, _ => 0
def bpLowerWitness5 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpLowerTerm 5.

Definition (Lean source)
noncomputable def bpLowerWitness5 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, false => S.cellProb false false true | false, false, true, false => S.cellProb true false false | false, true, false, false => S.cellProb false true true | false, true, false, true => S.cellProb false false false - S.cellProb false false true - S.cellProb false true true | true, false, true, false => S.cellProb false true false | true, false, true, true => -S.cellProb false true false - S.cellProb true false false + S.cellProb true false true | true, true, true, true => 1 - S.cellProb false false false - S.cellProb true false true | _, _, _, _ => 0
def bpLowerWitness6 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpLowerTerm 6.

Definition (Lean source)
noncomputable def bpLowerWitness6 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, false => S.cellProb false false false | false, false, true, false => S.cellProb true false true | false, true, true, false => S.cellProb false true true | false, true, true, true => -S.cellProb false true true + S.cellProb true false false - S.cellProb true false true | true, false, false, false => S.cellProb false true false | true, false, false, true => -S.cellProb false false false + S.cellProb false false true - S.cellProb false true false | true, true, true, true => 1 - S.cellProb false false true - S.cellProb true false false | _, _, _, _ => 0
def bpLowerWitness7 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpLowerTerm 7.

Definition (Lean source)
noncomputable def bpLowerWitness7 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, false => S.cellProb false false true - S.cellProb false true false + S.cellProb false true true + S.cellProb true false true | false, true, false, true => S.cellProb false false false - S.cellProb false false true + S.cellProb false true false - S.cellProb false true true - S.cellProb true false true | false, true, true, true => S.cellProb true false false | true, false, false, false => S.cellProb false true false - S.cellProb false true true - S.cellProb true false true | true, false, true, false => S.cellProb true false true | true, true, true, false => S.cellProb false true true | true, true, true, true => 1 - S.cellProb false false false - S.cellProb false true false - S.cellProb true false false | _, _, _, _ => 0
theorem bpLower_mem_BPIdentifiedInterval reviewed
Causalean.PO.POBalkePearlSystem

Under the Balke-Pearl IV base assumptions, the closed-form Balke-Pearl lower bound, computed from the observed cell probabilities, is itself attained as the average treatment effect of some feasible latent treatment-response table — it lies in the Balke-Pearl identified interval.

Formal statement
hA :
S.BaseAssumptions
S.bpLower ∈ S.BPIdentifiedInterval hA
Proof (Lean source)
theorem bpLower_mem_BPIdentifiedInterval (hA : S.BaseAssumptions) : S.bpLower ∈ S.BPIdentifiedInterval hA := by have h₀ := S.latentProb_feasible hA obtain ⟨i, -, hi⟩ := Finset.exists_mem_eq_sup' (Finset.univ_nonempty) S.bpLowerTerm have hreg : ∀ j, S.bpLowerTerm j ≤ S.bpLowerTerm i := by intro j have h := Finset.le_sup' S.bpLowerTerm (Finset.mem_univ j) rwa [hi] at h have hb : S.bpLower = S.bpLowerTerm i := hi rw [hb] fin_cases i · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpLowerWitness0_feasible hA h₀ hreg) rw [S.bpLowerWitness0_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpLowerWitness1_feasible hA h₀ hreg) rw [S.bpLowerWitness1_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpLowerWitness2_feasible hA h₀ hreg) rw [S.bpLowerWitness2_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpLowerWitness3_feasible hA h₀ hreg) rw [S.bpLowerWitness3_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpLowerWitness4_feasible hA h₀ hreg) rw [S.bpLowerWitness4_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpLowerWitness5_feasible hA h₀ hreg) rw [S.bpLowerWitness5_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpLowerWitness6_feasible hA h₀ hreg) rw [S.bpLowerWitness6_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpLowerWitness7_feasible hA h₀ hreg) rw [S.bpLowerWitness7_objective hA] at h exact h
16 supporting declarations (lemmas, instances)
Upper 15 core · 16 supporting Witnesses attaining the Balke-Pearl upper expressions ★ bpUpper_mem_BPIdentifiedInterval

Witnesses attaining the Balke-Pearl upper expressions

def bpUAux0u reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice in the witness attaining bpUpperTerm 0.

Definition (Lean source)
noncomputable def bpUAux0u (S : POBalkePearlSystem P) : ℝ := max 0 (-S.cellProb false false false - S.cellProb false false true - S.cellProb false true true - S.cellProb true false false + 1)
def bpUpperWitness0 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpUpperTerm 0.

Definition (Lean source)
noncomputable def bpUpperWitness0 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, true => S.cellProb false false false + S.cellProb false false true + S.cellProb false true true + S.cellProb true false false + S.bpUAux0u - 1 | false, false, true, true => S.cellProb true false true | false, true, false, true => -S.cellProb false false true - S.cellProb false true true - S.cellProb true false false - S.bpUAux0u + 1 | false, true, true, true => S.cellProb true false false - S.cellProb true false true | true, false, false, false => S.cellProb false true false - S.cellProb false true true | true, false, false, true => -S.cellProb false false false - S.cellProb false true false - S.cellProb true false false - S.bpUAux0u + 1 | true, true, false, false => S.cellProb false true true | true, true, false, true => S.bpUAux0u | _, _, _, _ => 0
def bpUAux1u reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice in the witness attaining bpUpperTerm 1.

Definition (Lean source)
noncomputable def bpUAux1u (S : POBalkePearlSystem P) : ℝ := max 0 (-S.cellProb false false false - S.cellProb false false true - S.cellProb false true false - S.cellProb true false true + 1)
def bpUpperWitness1 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpUpperTerm 1.

Definition (Lean source)
noncomputable def bpUpperWitness1 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, true => S.cellProb false false false + S.cellProb false false true + S.cellProb false true false + S.cellProb true false true + S.bpUAux1u - 1 | false, false, true, true => S.cellProb true false false | false, true, false, false => -S.cellProb false true false + S.cellProb false true true | false, true, false, true => -S.cellProb false false true - S.cellProb false true true - S.cellProb true false true - S.bpUAux1u + 1 | true, false, false, true => -S.cellProb false false false - S.cellProb false true false - S.cellProb true false true - S.bpUAux1u + 1 | true, false, true, true => -S.cellProb true false false + S.cellProb true false true | true, true, false, false => S.cellProb false true false | true, true, false, true => S.bpUAux1u | _, _, _, _ => 0
def bpUAux2u reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice in the witness attaining bpUpperTerm 2.

Definition (Lean source)
noncomputable def bpUAux2u (S : POBalkePearlSystem P) : ℝ := max 0 (S.cellProb false true false - S.cellProb false true true + S.cellProb true false false - S.cellProb true false true )
def bpUAux2v reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice in the witness attaining bpUpperTerm 2.

Definition (Lean source)
noncomputable def bpUAux2v (S : POBalkePearlSystem P) : ℝ := max 0 (-S.cellProb false false false - S.cellProb false false true - S.cellProb false true false - S.cellProb true false false + 1)
def bpUpperWitness2 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpUpperTerm 2.

Definition (Lean source)
noncomputable def bpUpperWitness2 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, true => S.cellProb false false false + S.cellProb false false true + S.cellProb false true false + S.cellProb true false false + S.bpUAux2v - 1 | false, false, true, true => S.cellProb true false true | false, true, false, false => -S.cellProb false true false + S.cellProb false true true - S.cellProb true false false + S.cellProb true false true + S.bpUAux2u | false, true, false, true => -S.cellProb false false true - S.cellProb false true true - S.cellProb true false true - S.bpUAux2u - S.bpUAux2v + 1 | false, true, true, false => S.cellProb true false false - S.cellProb true false true - S.bpUAux2u | false, true, true, true => S.bpUAux2u | true, false, false, true => -S.cellProb false false false - S.cellProb false true false - S.cellProb true false false - S.bpUAux2v + 1 | true, true, false, false => S.cellProb false true false | true, true, false, true => S.bpUAux2v | _, _, _, _ => 0
def bpUAux3u reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice in the witness attaining bpUpperTerm 3.

Definition (Lean source)
noncomputable def bpUAux3u (S : POBalkePearlSystem P) : ℝ := max 0 (-S.cellProb false true false + S.cellProb false true true - S.cellProb true false false + S.cellProb true false true )
def bpUAux3v reviewed
Causalean.PO.POBalkePearlSystem

Free-variable choice in the witness attaining bpUpperTerm 3.

Definition (Lean source)
noncomputable def bpUAux3v (S : POBalkePearlSystem P) : ℝ := max 0 (-S.cellProb false false false - S.cellProb false false true - S.cellProb false true true - S.cellProb true false true + 1)
def bpUpperWitness3 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpUpperTerm 3.

Definition (Lean source)
noncomputable def bpUpperWitness3 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, true => S.cellProb false false false + S.cellProb false false true + S.cellProb false true true + S.cellProb true false true + S.bpUAux3v - 1 | false, false, true, true => S.cellProb true false false | false, true, false, true => -S.cellProb false false true - S.cellProb false true true - S.cellProb true false true - S.bpUAux3v + 1 | true, false, false, false => S.cellProb false true false - S.cellProb false true true + S.cellProb true false false - S.cellProb true false true + S.bpUAux3u | true, false, false, true => -S.cellProb false false false - S.cellProb false true false - S.cellProb true false false - S.bpUAux3u - S.bpUAux3v + 1 | true, false, true, false => -S.cellProb true false false + S.cellProb true false true - S.bpUAux3u | true, false, true, true => S.bpUAux3u | true, true, false, false => S.cellProb false true true | true, true, false, true => S.bpUAux3v | _, _, _, _ => 0
def bpUpperWitness4 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpUpperTerm 4.

Definition (Lean source)
noncomputable def bpUpperWitness4 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, true, true => S.cellProb false false true - S.cellProb false true false + S.cellProb false true true + S.cellProb true false true | false, true, false, true => S.cellProb false false false | false, true, true, true => -S.cellProb false false true + S.cellProb false true false - S.cellProb false true true + S.cellProb true false false - S.cellProb true false true | true, false, false, false => S.cellProb false false true | true, false, true, false => -S.cellProb false false true + S.cellProb false true false - S.cellProb false true true | true, true, false, false => S.cellProb false true true | true, true, false, true => -S.cellProb false false false - S.cellProb false true false - S.cellProb true false false + 1 | _, _, _, _ => 0
def bpUpperWitness5 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpUpperTerm 5.

Definition (Lean source)
noncomputable def bpUpperWitness5 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, true => S.cellProb false false true | false, false, true, true => S.cellProb true false false | false, true, false, false => S.cellProb false false false + S.cellProb false true true + S.cellProb true false true - 1 | false, true, false, true => -S.cellProb false false true - S.cellProb false true true - S.cellProb true false true + 1 | true, false, true, false => S.cellProb false false false + S.cellProb false true false + S.cellProb true false true - 1 | true, false, true, true => -S.cellProb false false false - S.cellProb false true false - S.cellProb true false false + 1 | true, true, false, false => -S.cellProb false false false - S.cellProb true false true + 1 | _, _, _, _ => 0
def bpUpperWitness6 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpUpperTerm 6.

Definition (Lean source)
noncomputable def bpUpperWitness6 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, false, true => S.cellProb false false false | false, false, true, true => S.cellProb true false true | false, true, true, false => S.cellProb false false true + S.cellProb false true true + S.cellProb true false false - 1 | false, true, true, true => -S.cellProb false false true - S.cellProb false true true - S.cellProb true false true + 1 | true, false, false, false => S.cellProb false false true + S.cellProb false true false + S.cellProb true false false - 1 | true, false, false, true => -S.cellProb false false false - S.cellProb false true false - S.cellProb true false false + 1 | true, true, false, false => -S.cellProb false false true - S.cellProb true false false + 1 | _, _, _, _ => 0
def bpUpperWitness7 reviewed
Causalean.PO.POBalkePearlSystem

Latent table attaining bpUpperTerm 7.

Definition (Lean source)
noncomputable def bpUpperWitness7 (S : POBalkePearlSystem P) : BoolBoolBoolBool → ℝ | false, false, true, true => S.cellProb false false false + S.cellProb false true false - S.cellProb false true true + S.cellProb true false false | false, true, false, false => S.cellProb false false false | false, true, true, false => -S.cellProb false false false - S.cellProb false true false + S.cellProb false true true | true, false, false, true => S.cellProb false false true | true, false, true, true => -S.cellProb false false false - S.cellProb false true false + S.cellProb false true true - S.cellProb true false false + S.cellProb true false true | true, true, false, false => S.cellProb false true false | true, true, false, true => -S.cellProb false false true - S.cellProb false true true - S.cellProb true false true + 1 | _, _, _, _ => 0
theorem bpUpper_mem_BPIdentifiedInterval reviewed
Causalean.PO.POBalkePearlSystem

Under the Balke-Pearl IV base assumptions, the closed-form Balke-Pearl upper bound, computed from the observed cell probabilities, is itself attained as the average treatment effect of some feasible latent treatment-response table — it lies in the Balke-Pearl identified interval.

Formal statement
hA :
S.BaseAssumptions
S.bpUpper ∈ S.BPIdentifiedInterval hA
Proof (Lean source)
theorem bpUpper_mem_BPIdentifiedInterval (hA : S.BaseAssumptions) : S.bpUpper ∈ S.BPIdentifiedInterval hA := by have h₀ := S.latentProb_feasible hA obtain ⟨i, -, hi⟩ := Finset.exists_mem_eq_inf' (Finset.univ_nonempty) S.bpUpperTerm have hreg : ∀ j, S.bpUpperTerm i ≤ S.bpUpperTerm j := by intro j have h := Finset.inf'_le S.bpUpperTerm (Finset.mem_univ j) rwa [hi] at h have hb : S.bpUpper = S.bpUpperTerm i := hi rw [hb] fin_cases i · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpUpperWitness0_feasible hA h₀ hreg) rw [S.bpUpperWitness0_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpUpperWitness1_feasible hA h₀ hreg) rw [S.bpUpperWitness1_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpUpperWitness2_feasible hA h₀ hreg) rw [S.bpUpperWitness2_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpUpperWitness3_feasible hA h₀ hreg) rw [S.bpUpperWitness3_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpUpperWitness4_feasible hA h₀ hreg) rw [S.bpUpperWitness4_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpUpperWitness5_feasible hA h₀ hreg) rw [S.bpUpperWitness5_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpUpperWitness6_feasible hA h₀ hreg) rw [S.bpUpperWitness6_objective hA] at h exact h · have h := PartialID.mem_identifiedInterval (obj := BPObjective) (S.bpUpperWitness7_feasible hA h₀ hreg) rw [S.bpUpperWitness7_objective hA] at h exact h
16 supporting declarations (lemmas, instances)