X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fdelayed_updating%2Freduction%2Fdbfr_unprotected.ma;h=753d38c684100ddfd25a544e61283d4dceb6dfb4;hb=f31020f1ae14e28c246b6cd9cf91b5864f4f536a;hp=a0e5a6944858a6f549aba27fdf9452c82a9964b3;hpb=513c4a61f11ce03888a8a0f9d8e513de6e3a7c8b;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dbfr_unprotected.ma b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dbfr_unprotected.ma index a0e5a6944..753d38c68 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dbfr_unprotected.ma +++ b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dbfr_unprotected.ma @@ -12,7 +12,9 @@ (* *) (**************************************************************************) +include "delayed_updating/reduction/dbfr_constructors.ma". include "delayed_updating/reduction/ibfr_constructors.ma". +include "delayed_updating/unwind/unwind2_prototerm_constructors.ma". include "delayed_updating/substitution/lift_prototerm_constructors.ma". include "ground/arith/pnat_two.ma". @@ -20,15 +22,23 @@ include "ground/arith/pnat_two.ma". (* Example of unprotected balanced β-reduction ******************************) -definition l3_t0: prototerm ≝ - (𝛌.@(⧣𝟏).@(𝛌.@(⧣𝟐).⧣𝟏).𝛌.⧣𝟏). +definition l3_t: prototerm ≝ + (@(⧣𝟏).@(𝛌.⧣𝟏).𝛌.⧣𝟏). -definition l3_t1: prototerm ≝ - (𝛌.@(⧣𝟏).@(𝛌.@(⧣𝟐).⧣𝟏).𝛌.(𝛌.@(⧣↑𝟐).⧣𝟏)). +definition l3_i1: prototerm ≝ + (@(⧣𝟏).@(𝛌.⧣𝟏).𝛌.𝛌.⧣𝟏). -lemma l3_t01: - l3_t0 ➡𝐢𝐛𝐟[𝗟◗𝗔◗𝗔◗𝗟◗𝐞] l3_t1. -@ibfr_abst_hd +definition l3_i2: prototerm ≝ + (@(⧣𝟏).@(𝛌.⧣𝟏).𝛌.𝛌.⧣↑𝟐). + +definition l3_d1: prototerm ≝ + (@(⧣𝟏).@(𝛌.⧣𝟏).𝛌.𝛕𝟏.𝛌.⧣𝟏). + +definition l3_d2: prototerm ≝ + (@(⧣𝟏).@(𝛌.⧣𝟏).𝛌.𝛕𝟏.𝛌.𝛕𝟏.⧣𝟏). + +lemma l3_ti1: + l3_t ➡𝐢𝐛𝐟[𝗔◗𝗔◗𝗟◗𝐞] l3_i1. @ibfr_appl_hd @ibfr_eq_trans [| @ibfr_beta_0 // ] @appl_eq_repl [ // ] @@ -36,7 +46,40 @@ lemma l3_t01: @(subset_eq_canc_sn … (fsubst_empty_rc …)) @(subset_eq_canc_sn … (lift_term_abst …)) @abst_eq_repl -@(subset_eq_canc_sn … (lift_term_appl … )) -@appl_eq_repl @(subset_eq_canc_sn … (lift_term_oref_pap … )) // qed. + +lemma l3_i12: + l3_i1 ➡𝐢𝐛𝐟[𝗔◗𝗔◗𝗟◗𝗟◗𝐞] l3_i2. +@ibfr_eq_trans [| @ibfr_beta_1 // ] +@appl_eq_repl [ // ] +@appl_eq_repl [ // ] +@abst_eq_repl +@abst_eq_repl +@(subset_eq_canc_sn … (fsubst_empty_rc …)) +@(subset_eq_canc_sn … (lift_term_oref_pap … )) // +qed. + +lemma l3_td1: + l3_t ➡𝐝𝐛𝐟[𝗔◗𝗔◗𝗟◗𝐞] l3_d1. +@dbfr_appl_hd +@dbfr_eq_trans [| @dbfr_beta_0 // ] +@appl_eq_repl [ // ] +@abst_eq_repl +@(subset_eq_canc_sn … (fsubst_empty_rc …)) // +qed. + +lemma ld_di2: + l3_i2 ⇔ ▼[𝐢]l3_d2. +@(subset_eq_canc_sn … (unwind2_term_appl …)) @appl_eq_repl +[ @(subset_eq_canc_sn … (unwind2_term_oref_pap …)) // ] +@(subset_eq_canc_sn … (unwind2_term_appl …)) @appl_eq_repl +[ @(subset_eq_canc_sn … (unwind2_term_abst …)) @abst_eq_repl + @(subset_eq_canc_sn … (unwind2_term_oref_pap …)) // +] +@(subset_eq_canc_sn … (unwind2_term_abst …)) @abst_eq_repl +@(subset_eq_canc_sn … (unwind2_term_iref …)) +@(subset_eq_canc_sn … (unwind2_term_abst …)) @abst_eq_repl +@(subset_eq_canc_sn … (unwind2_term_iref …)) +@(subset_eq_canc_sn … (unwind2_term_oref_pap …)) // +qed.