-lemma tpr_conf_lref_lref: ∀i. ∃∃X. #i ⇒ X & #i ⇒ X.
-/2/ qed.
-
-lemma tpr_conf_bind_bind:
- ∀I,V0,V1,T0,T1,V2,T2. (
- ∀X0:term. #X0 < #V0 + #T0 + 1 →
- ∀X1,X2. X0 ⇒ X1 → X0 ⇒ X2 →
- ∃∃X. X1 ⇒ X & X2 ⇒ X
- ) →
- V0 ⇒ V1 → V0 ⇒ V2 → T0 ⇒ T1 → T0 ⇒ T2 →
- ∃∃X. 𝕓{I} V1. T1 ⇒ X & 𝕓{I} V2. T2 ⇒ X.
-#I #V0 #V1 #T0 #T1 #V2 #T2 #IH #HV01 #HV02 #HT01 #HT02
-elim (IH … HV01 … HV02) -HV01 HV02 // #V #HV1 #HV2
-elim (IH … HT01 … HT02) -HT01 HT02 IH /3 width=5/
-qed.
-
-lemma tpr_conf_bind_delta:
- ∀V0,V1,T0,T1,V2,T2,T. (
- ∀X0:term. #X0 < #V0 + #T0 + 1 →
- ∀X1,X2. X0 ⇒ X1 → X0 ⇒ X2 →
- ∃∃X. X1 ⇒ X & X2 ⇒ X
- ) →
- V0 ⇒ V1 → V0 ⇒ V2 →
- T0 ⇒ T1 → T0 ⇒ T2 → ⋆. 𝕓{Abbr} V2 ⊢ T2 [O,1] ≫ T →
- ∃∃X. 𝕓{Abbr} V1. T1 ⇒ X & 𝕓{Abbr} V2. T ⇒ X.
-#V0 #V1 #T0 #T1 #V2 #T2 #T #IH #HV01 #HV02 #HT01 #HT02 #HT2
-elim (IH … HV01 … HV02) -HV01 HV02 // #V #HV1 #HV2
-elim (IH … HT01 … HT02) -HT01 HT02 IH // -V0 T0 #T0 #HT10 #HT20
-elim (tpr_tps_bind … HV2 HT20 … HT2) -HT20 HT2 /3 width=5/
-qed.
-
-lemma tpr_conf_bind_zeta:
- ∀X2,V0,V1,T0,T1,T. (
- ∀X0:term. #X0 < #V0 + #T0 +1 →
- ∀X1,X2. X0 ⇒ X1 → X0 ⇒ X2 →
- ∃∃X. X1 ⇒ X & X2 ⇒ X
- ) →
- V0 ⇒ V1 → T0 ⇒ T1 → T ⇒ X2 → ↑[O, 1] T ≡ T0 →
- ∃∃X. 𝕓{Abbr} V1. T1 ⇒ X & X2 ⇒ X.
-#X2 #V0 #V1 #T0 #T1 #T #IH #HV01 #HT01 #HTX2 #HT0
-elim (tpr_inv_lift … HT01 … HT0) -HT01 #U #HUT1 #HTU
-lapply (tw_lift … HT0) -HT0 #HT0
-elim (IH … HTX2 … HTU) -HTX2 HTU IH /3/
-qed.
-
-lemma tpr_conf_flat_flat: