(* CONTEXT-SENSITIVE PARALLEL EQUIVALENCE ON TERMS **************************)
(* Advanced inversion lemmas ************************************************)
(* CONTEXT-SENSITIVE PARALLEL EQUIVALENCE ON TERMS **************************)
(* Advanced inversion lemmas ************************************************)
-
-lemma cprs_inv_appl1_cpcs: ∀L,V1,T1,U2. L ⊢ ⓐV1. T1 ➡* U2 → (
- ∃∃V2,T2. L ⊢ V1 ➡* V2 & L ⊢ T1 ➡* T2 &
- L ⊢ U2 ➡* ⓐV2. T2
+(* does not holds
+axiom cprs_inv_appl1_cpcs: ∀L,V1,T1,U2. L ⊢ ⓐV1. T1 ➡* U2 → (
+ ∃∃V2,T2. L ⊢ V1 ➡* V2 & L ⊢ T1 ➡* T2 &
+ L ⊢ U2 ➡* ⓐV2. T2
- ∃∃V2,W,T. L ⊢ V1 ➡* V2 &
- L ⊢ T1 ➡* ⓛW. T & L ⊢ ⓓV2. T ⬌* U2.
+ ∃∃a,V2,W,T. L ⊢ V1 ➡* V2 &
+ L ⊢ T1 ➡* ⓛ{a}W. T & L ⊢ ⓓ{a}V2. T ⬌* U2.
#L #V1 #T1 #U2 #H @(cprs_ind … H) -U2 /3 width=5/
#U #U2 #_ #HU2 * *
[ #V0 #T0 #HV10 #HT10 #HUT0
elim (cprs_strip … HUT0 … HU2) -U #U #H #HU2
elim (cpr_inv_appl1 … H) -H *
[ #V2 #T2 #HV02 #HT02 #H destruct /4 width=5/
#L #V1 #T1 #U2 #H @(cprs_ind … H) -U2 /3 width=5/
#U #U2 #_ #HU2 * *
[ #V0 #T0 #HV10 #HT10 #HUT0
elim (cprs_strip … HUT0 … HU2) -U #U #H #HU2
elim (cpr_inv_appl1 … H) -H *
[ #V2 #T2 #HV02 #HT02 #H destruct /4 width=5/
- lapply (cprs_div ? (ⓓV2.T) ? ? ? HU2) -HU2 /2 width=1/ /3 width=6/
- | #V #V2 #W0 #W2 #T #T2 #HV0 #HW02 #HT2 #HV2 #H1 #H2 destruct
+ lapply (cprs_div ? (ⓓ{b}V2.T) ? ? ? HU2) -HU2 /2 width=1/ /3 width=7/
+ | #b #V #V2 #W0 #W2 #T #T2 #HV0 #HW02 #HT2 #HV2 #H1 #H2 destruct
elim (sfr_delift (L.ⓓW2) (ⓐV2.T2) 0 1 ? ?) // #X #H1
lapply (cprs_zeta_delift … H1) #H2
lapply (cprs_trans … HU2 … H2) -HU2 -H2 #HU2T3
elim (sfr_delift (L.ⓓW2) (ⓐV2.T2) 0 1 ? ?) // #X #H1
lapply (cprs_zeta_delift … H1) #H2
lapply (cprs_trans … HU2 … H2) -HU2 -H2 #HU2T3
-
-lemma cprs_inv_appl_abst: ∀L,V,T,W,U. L ⊢ ⓐV.T ➡* ⓛW.U →
+*)
+(* maybe holds
+axiom cprs_inv_appl_abst: ∀L,V,T,W,U. L ⊢ ⓐV.T ➡* ⓛW.U →
∃∃W0,T0,V1,T1. L ⊢ T ➡* ⓛW0.T0 &
L ⊢ ⓓV.T0 ➡* ⓛV1.T1 &
L ⊢ ⓛW.U ➡* ⓛV1.T1.
∃∃W0,T0,V1,T1. L ⊢ T ➡* ⓛW0.T0 &
L ⊢ ⓓV.T0 ➡* ⓛV1.T1 &
L ⊢ ⓛW.U ➡* ⓛV1.T1.
-lemma cpcs_zeta_delift_comm: ∀L,V,T1,T2. L.ⓓV ⊢ T1 ▼*[O, 1] ≡ T2 →
- L ⊢ T2 ⬌* ⓓV.T1.
+lemma cpcs_zeta_delift_comm: ∀L,V,T1,T2. L.ⓓV ⊢ ▼*[O, 1] T1 ≡ T2 →
+ L ⊢ T2 ⬌* +ⓓV.T1.
/3 width=1/ qed.
(* Basic_1: was only: pc3_gen_cabbr *)
lemma thin_cpcs_delift_mono: ∀L,U1,U2. L ⊢ U1 ⬌* U2 →
/3 width=1/ qed.
(* Basic_1: was only: pc3_gen_cabbr *)
lemma thin_cpcs_delift_mono: ∀L,U1,U2. L ⊢ U1 ⬌* U2 →
- ∀K,d,e. L ▼*[d, e] ≡ K → ∀T1. L ⊢ U1 ▼*[d, e] ≡ T1 →
- ∀T2. L ⊢ U2 ▼*[d, e] ≡ T2 → K ⊢ T1 ⬌* T2.
+ ∀K,d,e. ▼*[d, e] L ≡ K → ∀T1. L ⊢ ▼*[d, e] U1 ≡ T1 →
+ ∀T2. L ⊢ ▼*[d, e] U2 ≡ T2 → K ⊢ T1 ⬌* T2.
#L #U1 #U2 #H #K #d #e #HLK #T1 #HTU1 #T2 #HTU2
elim (cpcs_inv_cprs … H) -H #U #HU1 #HU2
elim (thin_cprs_delift_conf … HU1 … HLK … HTU1) -U1 #T #HT1 #HUT
#L #U1 #U2 #H #K #d #e #HLK #T1 #HTU1 #T2 #HTU2
elim (cpcs_inv_cprs … H) -H #U #HU1 #HU2
elim (thin_cprs_delift_conf … HU1 … HLK … HTU1) -U1 #T #HT1 #HUT