X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambda_delta%2FBasic_2%2Funfold%2Fltpss.ma;fp=matita%2Fmatita%2Fcontribs%2Flambda_delta%2FBasic_2%2Funfold%2Fltpss.ma;h=6ede048c5281dfa980a8c168e673e190119e5a75;hb=39e80f80b26e18cf78f805e814ba2f2e8400c1f1;hp=7c86262d9a0d0b91bf5c76466fce76396c0a2b2e;hpb=de392360825733c1c865d748f7711f34bfc027f3;p=helm.git diff --git a/matita/matita/contribs/lambda_delta/Basic_2/unfold/ltpss.ma b/matita/matita/contribs/lambda_delta/Basic_2/unfold/ltpss.ma index 7c86262d9..6ede048c5 100644 --- a/matita/matita/contribs/lambda_delta/Basic_2/unfold/ltpss.ma +++ b/matita/matita/contribs/lambda_delta/Basic_2/unfold/ltpss.ma @@ -26,46 +26,46 @@ interpretation "partial unfold (local environment)" (* Basic eliminators ********************************************************) lemma ltpss_ind: ∀d,e,L1. ∀R:predicate lenv. R L1 → - (∀L,L2. L1 [d, e] ≫* L → L [d, e] ≫ L2 → R L → R L2) → - ∀L2. L1 [d, e] ≫* L2 → R L2. + (∀L,L2. L1 [d, e] ▶* L → L [d, e] ▶ L2 → R L → R L2) → + ∀L2. L1 [d, e] ▶* L2 → R L2. #d #e #L1 #R #HL1 #IHL1 #L2 #HL12 @(TC_star_ind … HL1 IHL1 … HL12) // qed-. (* Basic properties *********************************************************) lemma ltpss_strap: ∀L1,L,L2,d,e. - L1 [d, e] ≫ L → L [d, e] ≫* L2 → L1 [d, e] ≫* L2. + L1 [d, e] ▶ L → L [d, e] ▶* L2 → L1 [d, e] ▶* L2. /2 width=3/ qed. -lemma ltpss_refl: ∀L,d,e. L [d, e] ≫* L. +lemma ltpss_refl: ∀L,d,e. L [d, e] ▶* L. /2 width=1/ qed. (* Basic inversion lemmas ***************************************************) -lemma ltpss_inv_refl_O2: ∀d,L1,L2. L1 [d, 0] ≫* L2 → L1 = L2. +lemma ltpss_inv_refl_O2: ∀d,L1,L2. L1 [d, 0] ▶* L2 → L1 = L2. #d #L1 #L2 #H @(ltpss_ind … H) -L2 // #L #L2 #_ #HL2 #IHL <(ltps_inv_refl_O2 … HL2) -HL2 // qed-. -lemma ltpss_inv_atom1: ∀d,e,L2. ⋆ [d, e] ≫* L2 → L2 = ⋆. +lemma ltpss_inv_atom1: ∀d,e,L2. ⋆ [d, e] ▶* L2 → L2 = ⋆. #d #e #L2 #H @(ltpss_ind … H) -L2 // #L #L2 #_ #HL2 #IHL destruct >(ltps_inv_atom1 … HL2) -HL2 // qed-. -fact ltpss_inv_atom2_aux: ∀d,e,L1,L2. L1 [d, e] ≫* L2 → L2 = ⋆ → L1 = ⋆. +fact ltpss_inv_atom2_aux: ∀d,e,L1,L2. L1 [d, e] ▶* L2 → L2 = ⋆ → L1 = ⋆. #d #e #L1 #L2 #H @(ltpss_ind … H) -L2 // #L2 #L #_ #HL2 #IHL2 #H destruct lapply (ltps_inv_atom2 … HL2) -HL2 /2 width=1/ qed. -lemma ltpss_inv_atom2: ∀d,e,L1. L1 [d, e] ≫* ⋆ → L1 = ⋆. +lemma ltpss_inv_atom2: ∀d,e,L1. L1 [d, e] ▶* ⋆ → L1 = ⋆. /2 width=5/ qed-. (* -fact ltps_inv_tps22_aux: ∀d,e,L1,L2. L1 [d, e] ≫ L2 → d = 0 → 0 < e → +fact ltps_inv_tps22_aux: ∀d,e,L1,L2. L1 [d, e] ▶ L2 → d = 0 → 0 < e → ∀K2,I,V2. L2 = K2. 𝕓{I} V2 → - ∃∃K1,V1. K1 [0, e - 1] ≫ K2 & - K2 ⊢ V1 [0, e - 1] ≫ V2 & + ∃∃K1,V1. K1 [0, e - 1] ▶ K2 & + K2 ⊢ V1 [0, e - 1] ▶ V2 & L1 = K1. 𝕓{I} V1. #d #e #L1 #L2 * -d e L1 L2 [ #d #e #_ #_ #K1 #I #V1 #H destruct @@ -75,15 +75,15 @@ fact ltps_inv_tps22_aux: ∀d,e,L1,L2. L1 [d, e] ≫ L2 → d = 0 → 0 < e → ] qed. -lemma ltps_inv_tps22: ∀e,L1,K2,I,V2. L1 [0, e] ≫ K2. 𝕓{I} V2 → 0 < e → - ∃∃K1,V1. K1 [0, e - 1] ≫ K2 & K2 ⊢ V1 [0, e - 1] ≫ V2 & +lemma ltps_inv_tps22: ∀e,L1,K2,I,V2. L1 [0, e] ▶ K2. 𝕓{I} V2 → 0 < e → + ∃∃K1,V1. K1 [0, e - 1] ▶ K2 & K2 ⊢ V1 [0, e - 1] ▶ V2 & L1 = K1. 𝕓{I} V1. /2 width=5/ qed. -fact ltps_inv_tps12_aux: ∀d,e,L1,L2. L1 [d, e] ≫ L2 → 0 < d → +fact ltps_inv_tps12_aux: ∀d,e,L1,L2. L1 [d, e] ▶ L2 → 0 < d → ∀I,K2,V2. L2 = K2. 𝕓{I} V2 → - ∃∃K1,V1. K1 [d - 1, e] ≫ K2 & - K2 ⊢ V1 [d - 1, e] ≫ V2 & + ∃∃K1,V1. K1 [d - 1, e] ▶ K2 & + K2 ⊢ V1 [d - 1, e] ▶ V2 & L1 = K1. 𝕓{I} V1. #d #e #L1 #L2 * -d e L1 L2 [ #d #e #_ #I #K2 #V2 #H destruct @@ -93,9 +93,9 @@ fact ltps_inv_tps12_aux: ∀d,e,L1,L2. L1 [d, e] ≫ L2 → 0 < d → ] qed. -lemma ltps_inv_tps12: ∀L1,K2,I,V2,d,e. L1 [d, e] ≫ K2. 𝕓{I} V2 → 0 < d → - ∃∃K1,V1. K1 [d - 1, e] ≫ K2 & - K2 ⊢ V1 [d - 1, e] ≫ V2 & +lemma ltps_inv_tps12: ∀L1,K2,I,V2,d,e. L1 [d, e] ▶ K2. 𝕓{I} V2 → 0 < d → + ∃∃K1,V1. K1 [d - 1, e] ▶ K2 & + K2 ⊢ V1 [d - 1, e] ▶ V2 & L1 = K1. 𝕓{I} V1. /2 width=1/ qed. *)