X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Fcomputation%2Facp_cr.ma;h=1b0d56c7cd4948fe0cfb798e5d3fe012887d6c5b;hb=ab0d181f9a89f461a9c280f42a949a2dc2abe44c;hp=482349b69d8aa73cb31986b3ebcc0cb44a465d09;hpb=fdb2c62b58006b82c015ba70b494d50c7860e28f;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/computation/acp_cr.ma b/matita/matita/contribs/lambdadelta/basic_2/computation/acp_cr.ma index 482349b69..1b0d56c7c 100644 --- a/matita/matita/contribs/lambdadelta/basic_2/computation/acp_cr.ma +++ b/matita/matita/contribs/lambdadelta/basic_2/computation/acp_cr.ma @@ -89,7 +89,7 @@ lemma acr_lifts: ∀C. S8 C → S8s C. [ #L #T1 #T2 #H #HT1 <(lifts_inv_nil … H) -H // | #L1 #L #L2 #des #d #e #_ #HL2 #IHL #T2 #T1 #H #HLT2 - elim (lifts_inv_cons … H) -H /3 width=9/ + elim (lifts_inv_cons … H) -H /3 width=9 by/ ] qed. @@ -97,7 +97,7 @@ lemma rp_lifts: ∀RR,RS,RP. acr RR RS RP (λG,L,T. RP G L T) → ∀des,G,L0,L,V,V0. ⇩*[des] L0 ≡ L → ⇧*[des] V ≡ V0 → RP G L V → RP G L0 V0. #RR #RS #RP #HRP #des #G #L0 #L #V #V0 #HL0 #HV0 #HV -@acr_lifts /width=6/ +@acr_lifts /width=6 by/ @(s8 … HRP) qed. @@ -106,8 +106,7 @@ lemma rp_liftsv_all: ∀RR,RS,RP. acr RR RS RP (λG,L,T. RP G L T) → ∀des,G,L0,L,Vs,V0s. ⇧*[des] Vs ≡ V0s → ⇩*[des] L0 ≡ L → all … (RP G L) Vs → all … (RP G L0) V0s. #RR #RS #RP #HRP #des #G #L0 #L #Vs #V0s #H elim H -Vs -V0s normalize // -#T1s #T2s #T1 #T2 #HT12 #_ #IHT2s #HL0 * #HT1 #HT1s -@conj /2 width=1/ /2 width=6 by rp_lifts/ +#T1s #T2s #T1 #T2 #HT12 #_ #IHT2s #HL0 * /3 width=6 by rp_lifts, conj/ qed. (* Basic_1: was: @@ -119,25 +118,26 @@ lemma aacr_acr: ∀RR,RS,RP. acp RR RS RP → acr RR RS RP (λG,L,T. RP G L T) #B #A #IHB #IHA @mk_acr normalize [ #G #L #T #H elim (cp1 … H1RP G L) #k #HK - lapply (H ? (⋆k) ? ⟠ ? ? ?) -H + lapply (H ? (⋆k) ? (⟠) ? ? ?) -H [1,3: // |2,4: skip - | @(s2 … IHB … ◊) // + | @(s2 … IHB … (◊)) // | #H @(cp3 … H1RP … k) @(s1 … IHA) // ] | #G #L #Vs #HVs #T #H1T #H2T #L0 #V0 #X #des #HB #HL0 #H elim (lifts_inv_applv1 … H) -H #V0s #T0 #HV0s #HT0 #H destruct lapply (s1 … IHB … HB) #HV0 - @(s2 … IHA … (V0 @ V0s)) /2 width=4 by lifts_simple_dx/ /3 width=6/ + @(s2 … IHA … (V0 @ V0s)) + /3 width=13 by rp_liftsv_all, acp_lifts, cp2, lifts_simple_dx, conj/ | #a #G #L #Vs #U #T #W #HA #L0 #V0 #X #des #HB #HL0 #H elim (lifts_inv_applv1 … H) -H #V0s #Y #HV0s #HY #H destruct elim (lifts_inv_flat1 … HY) -HY #U0 #X #HU0 #HX #H destruct elim (lifts_inv_bind1 … HX) -HX #W0 #T0 #HW0 #HT0 #H destruct - @(s3 … IHA … (V0 @ V0s)) /5 width=5/ + @(s3 … IHA … (V0 @ V0s)) /5 width=5 by lifts_applv, lifts_flat, lifts_bind/ | #G #L #Vs #HVs #k #L0 #V0 #X #hdes #HB #HL0 #H elim (lifts_inv_applv1 … H) -H #V0s #Y #HV0s #HY #H destruct >(lifts_inv_sort1 … HY) -Y lapply (s1 … IHB … HB) #HV0 - @(s4 … IHA … (V0 @ V0s)) /3 width=6/ + @(s4 … IHA … (V0 @ V0s)) /3 width=6 by rp_liftsv_all, conj/ | #I #G #L #K #Vs #V1 #V2 #i #HA #HV12 #HLK #L0 #V0 #X #des #HB #HL0 #H elim (lifts_inv_applv1 … H) -H #V0s #Y #HV0s #HY #H destruct elim (lifts_inv_lref1 … HY) -HY #i0 #Hi0 #H destruct @@ -147,15 +147,15 @@ lemma aacr_acr: ∀RR,RS,RP. acp RR RS RP → acr RR RS RP (λG,L,T. RP G L T) elim (lift_total W1 0 (i0 + 1)) #W2 #HW12 elim (lifts_lift_trans … Hdes0 … HVW1 … HW12) // -Hdes0 -Hi0 #V3 #HV13 #HVW2 >(lift_mono … HV13 … HV12) in HVW2; -V3 #HVW2 - @(s5 … IHA … (V0 @ V0s) … HW12 HL02) /3 width=4/ + @(s5 … IHA … (V0 @ V0s) … HW12 HL02) /3 width=4 by lifts_applv/ | #G #L #V1s #V2s #HV12s #a #V #T #HA #HV #L0 #V10 #X #des #HB #HL0 #H elim (lifts_inv_applv1 … H) -H #V10s #Y #HV10s #HY #H destruct elim (lifts_inv_bind1 … HY) -HY #V0 #T0 #HV0 #HT0 #H destruct elim (lift_total V10 0 1) #V20 #HV120 elim (liftv_total 0 1 V10s) #V20s #HV120s - @(s6 … IHA … (V10 @ V10s) (V20 @ V20s)) /2 width=1/ /3 width=6 by rp_lifts/ - @(HA … (des + 1)) /2 width=1/ - [ @(s8 … IHB … HB … HV120) /2 width=1/ + @(s6 … IHA … (V10 @ V10s) (V20 @ V20s)) /3 width=6 by rp_lifts, liftv_cons/ + @(HA … (des + 1)) /2 width=1 by ldrops_skip/ + [ @(s8 … IHB … HB … HV120) /2 width=1 by ldrop_ldrop/ | @lifts_applv // elim (liftsv_liftv_trans_le … HV10s … HV120s) -V10s #V10s #HV10s #HV120s >(liftv_mono … HV12s … HV10s) -V1s // @@ -163,8 +163,8 @@ lemma aacr_acr: ∀RR,RS,RP. acp RR RS RP → acr RR RS RP (λG,L,T. RP G L T) | #G #L #Vs #T #W #HA #HW #L0 #V0 #X #des #HB #HL0 #H elim (lifts_inv_applv1 … H) -H #V0s #Y #HV0s #HY #H destruct elim (lifts_inv_flat1 … HY) -HY #W0 #T0 #HW0 #HT0 #H destruct - @(s7 … IHA … (V0 @ V0s)) /3 width=4/ -| /3 width=7/ + @(s7 … IHA … (V0 @ V0s)) /3 width=4 by lifts_applv/ +| /3 width=7 by ldrops_cons, lifts_cons/ ] qed. @@ -179,11 +179,11 @@ lapply (aacr_acr … H1RP H2RP A) #HCA lapply (aacr_acr … H1RP H2RP B) #HCB elim (lifts_inv_bind1 … H) -H #W0 #T0 #HW0 #HT0 #H destruct lapply (acr_lifts … HL0 … HW0 HW) -HW [ @(s8 … HCB) ] #HW0 -@(s3 … HCA … ◊) -@(s6 … HCA … ◊ ◊) // +@(s3 … HCA … (◊)) +@(s6 … HCA … (◊) (◊)) // [ @(HA … HL0) // | lapply (s1 … HCB) -HCB #HCB - @(cp4 … H1RP) /2 width=1/ + @(cp4 … H1RP) /2 width=1 by/ ] qed.