X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Freduction%2Fdbfr_ibfr.ma;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Freduction%2Fdbfr_ibfr.ma;h=043f6108544470314b6870fe0e36a2844c2ac4fb;hb=b1c5b3370653db6e495bbf6b3799cba592746cdd;hp=0000000000000000000000000000000000000000;hpb=e4328f6887dc0235d49d965a5ba44787b1754b80;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dbfr_ibfr.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dbfr_ibfr.ma new file mode 100644 index 000000000..043f61085 --- /dev/null +++ b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dbfr_ibfr.ma @@ -0,0 +1,78 @@ +(**************************************************************************) +(* ___ *) +(* ||M|| *) +(* ||A|| A project by Andrea Asperti *) +(* ||T|| *) +(* ||I|| Developers: *) +(* ||T|| The HELM team. *) +(* ||A|| http://helm.cs.unibo.it *) +(* \ / *) +(* \ / This file is distributed under the terms of the *) +(* v GNU General Public License Version 2 *) +(* *) +(**************************************************************************) + +include "delayed_updating/reduction/dbfr.ma". +include "delayed_updating/reduction/ibfr.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_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". + +(* DELAYED BALANCED FOCUSED REDUCTION ***************************************) + +(* Main destructions with ibfr **********************************************) + +theorem dbfr_des_ibfr (f) (t1) (t2) (r): t1 ϵ 𝐓 → + t1 ➡𝐝𝐛𝐟[r] t2 → ▼[f]t1 ➡𝐢𝐛𝐟[⊗r] ▼[f]t2. +#f #t1 #t2 #r #H0t1 +* #p #b #q #h #k #Hr #Hb #Hh #H1k #Ht1 #Ht2 destruct +@(ex6_5_intro … (⊗p) (⊗b) (⊗q) (♭b) (↑♭q)) +[ -H0t1 -Hb -Hh -H1k -Ht1 -Ht2 // +| -H0t1 -Hh -H1k -Ht1 -Ht2 // +| -H0t1 -Hb -Ht1 -H1k -Ht2 + >Hh in ⊢ (??%?); >path_head_structure_depth structure_L_sn + >H1k in ⊢ (??%?); >path_head_structure_depth list_append_rcons_dx >list_append_assoc + lapply (unwind2_rmap_append_pap_closed f … (p●𝗔◗b) … H1k) -H1k + unwind2_rmap_A_dx + /2 width=1 by tls_unwind2_rmap_closed/ + ] +(* Note: crux of the proof ends *) + | // + | /2 width=2 by ex_intro/ + | // + ] +] +qed.