]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/rt_transition/lfpx_lfdeq.ma
- advances towards strong normalization
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / rt_transition / lfpx_lfdeq.ma
index 1ff13898c9c67a82fbdfe48d8fbf43e459ddaff3..7af823975e6f5b1fa05ad044148e9e3107addf90 100644 (file)
 (**************************************************************************)
 
 include "basic_2/relocation/lifts_tdeq.ma".
+include "basic_2/static/lfxs_lfxs.ma".
 include "basic_2/static/lfdeq_fqup.ma".
-include "basic_2/rt_transition/lfpx.ma".
+include "basic_2/rt_transition/lfpx_frees.ma".
+include "basic_2/rt_transition/lfpx.ma". (**) (* should be in lfpx_frees.ma *)
 
 (* UNCOUNTED PARALLEL RT-TRANSITION FOR LOCAL ENV.S ON REFERRED ENTRIES *****)
 
@@ -30,13 +32,13 @@ lemma cpx_tdeq_conf_lexs: ∀h,o,G. R_confluent2_lfxs … (cpx h G) (cdeq h o) (
   elim (lfpx_inv_zero_pair_sn … H1) -H1 #K1 #X1 #HK01 #HX1 #H destruct
   elim (lfdeq_inv_zero_pair_sn … H2) -H2 #K2 #X2 #HK02 #HX2 #H destruct
   elim (IH X2 … HK01 … HK02) // -K0 -V0 #V #HV1 #HV2
-  elim (tdeq_lifts … HV1 … HVW1) -V1 /3 width=5 by cpx_delta, ex2_intro/
+  elim (tdeq_lifts_sn … HV1 … HVW1) -V1 /3 width=5 by cpx_delta, ex2_intro/
 | #I #G #K0 #V0 #V1 #W1 #i #_ #IH #HVW1 #T2 #H0 #L1 #H1 #L2 #H2
   >(tdeq_inv_lref1 … H0) -H0
   elim (lfpx_inv_lref_pair_sn … H1) -H1 #K1 #X1 #HK01 #H destruct
   elim (lfdeq_inv_lref_pair_sn … H2) -H2 #K2 #X2 #HK02 #H destruct
   elim (IH … HK01 … HK02) [|*: //] -K0 -V0 #V #HV1 #HV2
-  elim (tdeq_lifts … HV1 … HVW1) -V1 /3 width=5 by cpx_lref, ex2_intro/
+  elim (tdeq_lifts_sn … HV1 … HVW1) -V1 /3 width=5 by cpx_lref, ex2_intro/
 | #p #I #G #L0 #V0 #V1 #T0 #T1 #_ #_ #IHV #IHT #X0 #H0 #L1 #H1 #L2 #H2
   elim (tdeq_inv_pair1 … H0) -H0 #V2 #T2 #HV02 #HT02 #H destruct
   elim (lfpx_inv_bind … H1) -H1 #HL01 #H1
@@ -58,7 +60,7 @@ lemma cpx_tdeq_conf_lexs: ∀h,o,G. R_confluent2_lfxs … (cpx h G) (cdeq h o) (
   elim (lfdeq_inv_bind … H2) -H2 #HL02 #H2
   lapply (lfdeq_pair_repl_dx … H2 … HV02) -H2 -HV02 #H2
   elim (IH … HT02 … H1 … H2) -L0 -T0 #T #HT1
-  elim (tdeq_inv_lifts … HT1 … HUT1) -T1
+  elim (tdeq_inv_lifts_sn … HT1 … HUT1) -T1
   /3 width=5 by cpx_zeta, ex2_intro/
 | #G #L0 #V0 #T0 #T1 #_ #IH #X0 #H0 #L1 #H1 #L2 #H2
   elim (tdeq_inv_pair1 … H0) -H0 #V2 #T2 #_ #HT02 #H destruct
@@ -95,7 +97,7 @@ lemma cpx_tdeq_conf_lexs: ∀h,o,G. R_confluent2_lfxs … (cpx h G) (cdeq h o) (
   elim (IHV … HV02 … H1LV0 … H2LV0) -IHV -HV02 -H1LV0 -H2LV0 #V #HV1
   elim (IHW … HW02 … H1LW0 … H2LW0) -IHW -HW02 -H1LW0 -H2LW0
   elim (IHT … HT02 … H1LT0 … H2LT0) -L0 -V0 -T0
-  elim (tdeq_lifts … HV1 … HVU1) -V1
+  elim (tdeq_lifts_sn … HV1 … HVU1) -V1
   /4 width=9 by cpx_theta, tdeq_pair, ex2_intro/ (* note: 2 tdeq_pair *)
 ]
 qed-.
@@ -133,20 +135,16 @@ elim (cpx_lfdeq_conf … o … HT01 L2) -HT01
 /3 width=3 by lfdeq_sym, tdeq_sym, ex2_intro/
 qed-.
 
-include "basic_2/static/lfxs_lfxs.ma".
+lemma lfpx_lfdeq_conf: ∀h,o,G,T. confluent2 … (lfpx h G T) (lfdeq h o T).
+/3 width=6 by lfpx_frees_conf, cpx_tdeq_conf_lexs, frees_lfdeq_conf_lexs, lfxs_conf/ qed-.
 
-axiom lfpx_lfdeq_conf: ∀h,o,G,T. confluent2 … (lfpx h G T) (lfdeq h o T).
-(*
-#H1 #H2 #H3 #H4 #H5 #H6 #H7 #H8 #H9
-@lfxs_conf 
-*)
 (* Basic_2A1: was just: lleq_lpx_trans *)
 lemma lfdeq_lfpx_trans: ∀h,o,G,T,L2,K2. ⦃G, L2⦄ ⊢ ⬈[h, T] K2 →
                         ∀L1. L1 ≡[h, o, T] L2 →
                         ∃∃K1. ⦃G, L1⦄ ⊢ ⬈[h, T] K1 & K1 ≡[h, o, T] K2.
 #h #o #G #T #L2 #K2 #HLK2 #L1 #HL12
 elim (lfpx_lfdeq_conf … o … HLK2 L1)
-/3 width=3 by lfdeq_sym, ex2_intro/ 
+/3 width=3 by lfdeq_sym, ex2_intro/
 qed-.
 (*
 (* Properties with supclosure ***********************************************)