X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Freduction%2Fdfr_ifr.ma;h=2b15d3d5279b109c66127c7747230d3e39d58e3b;hb=3af42b8f2cb1956eed14edcc0adb9df92601f248;hp=84e27153095238276ffa28de6ca4162ad0ee0b2c;hpb=e0c91d8a4422da0b39aca790e5826dc8a617b303;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma index 84e271530..2b15d3d52 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dfr_ifr.ma @@ -14,49 +14,60 @@ include "delayed_updating/reduction/dfr.ma". include "delayed_updating/reduction/ifr.ma". -include "delayed_updating/substitution/fsubst_lift.ma". + +include "delayed_updating/unwind/unwind2_constructors.ma". +include "delayed_updating/unwind/unwind2_preterm_fsubst.ma". +include "delayed_updating/unwind/unwind2_preterm_eq.ma". +include "delayed_updating/unwind/unwind2_prototerm_lift.ma". +include "delayed_updating/unwind/unwind2_rmap_head.ma". + include "delayed_updating/substitution/fsubst_eq.ma". -include "delayed_updating/substitution/lift_constructors.ma". -include "delayed_updating/substitution/lift_preterm_eq.ma". -include "delayed_updating/substitution/lift_structure_depth.ma". +include "delayed_updating/substitution/lift_prototerm_eq.ma". + include "delayed_updating/syntax/prototerm_proper_constructors.ma". +include "delayed_updating/syntax/path_head_structure.ma". include "delayed_updating/syntax/path_structure_depth.ma". -include "ground/relocation/tr_uni_compose.ma". -include "ground/relocation/tr_pap_pushs.ma". - -include "ground/lib/stream_eq_eq.ma". +include "delayed_updating/syntax/path_structure_reverse.ma". +include "delayed_updating/syntax/path_depth_reverse.ma". (* DELAYED FOCUSED REDUCTION ************************************************) -lemma dfr_lift_bi (f) (p) (q) (t1) (t2): t1 ϵ 𝐓 → - t1 ➡𝐝𝐟[p,q] t2 → ↑[f]t1 ➡𝐟[⊗p,⊗q] ↑[f]t2. +(* Main destructions with ifr ***********************************************) + +theorem dfr_des_ifr (f) (p) (q) (t1) (t2): t1 ϵ 𝐓 → + t1 ➡𝐝𝐟[p,q] t2 → ▼[f]t1 ➡𝐢𝐟[⊗p,⊗q] ▼[f]t2. #f #p #q #t1 #t2 #H0t1 -* #b #n * #Hb #Hn #Ht1 #Ht2 -@(ex1_2_intro … (⊗b) (↑❘⊗q❘)) @and4_intro -[ // -| #g tr_pushs_swap structure_L_sn >structure_reverse + >H1n in ⊢ (??%?); >path_head_structure_depth (list_append_rcons_sn … p) list_append_rcons_sn nrplus_inj_dx unwind2_rmap_A_sn