From d89ef541a62a996a7e7fa4d4a1cfc3b28d7862e5 Mon Sep 17 00:00:00 2001 From: Ferruccio Guidi Date: Wed, 21 Dec 2022 16:33:06 +0100 Subject: [PATCH] update in delayed_updating + couterexample to dbfr_ibfr when inner labels in b are not bound in b --- .../dbfr_unprotected_zero.ma} | 76 ++++++++++++++----- 1 file changed, 58 insertions(+), 18 deletions(-) rename matita/matita/contribs/lambdadelta/delayed_updating/{etc/reduction/dbfr_unprotected.etc => reduction/dbfr_unprotected_zero.ma} (55%) diff --git a/matita/matita/contribs/lambdadelta/delayed_updating/etc/reduction/dbfr_unprotected.etc b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dbfr_unprotected_zero.ma similarity index 55% rename from matita/matita/contribs/lambdadelta/delayed_updating/etc/reduction/dbfr_unprotected.etc rename to matita/matita/contribs/lambdadelta/delayed_updating/reduction/dbfr_unprotected_zero.ma index 753d38c68..5b3631f9c 100644 --- a/matita/matita/contribs/lambdadelta/delayed_updating/etc/reduction/dbfr_unprotected.etc +++ b/matita/matita/contribs/lambdadelta/delayed_updating/reduction/dbfr_unprotected_zero.ma @@ -23,26 +23,39 @@ include "ground/arith/pnat_two.ma". (* Example of unprotected balanced β-reduction ******************************) definition l3_t: prototerm ≝ - (@(⧣𝟏).@(𝛌.⧣𝟏).𝛌.⧣𝟏). + (𝛌.@(𝛌.⧣𝟏).𝛌.@(⧣𝟐).⧣𝟏). definition l3_i1: prototerm ≝ - (@(⧣𝟏).@(𝛌.⧣𝟏).𝛌.𝛌.⧣𝟏). + (𝛌.@(𝛌.⧣𝟏).𝛌.@(⧣𝟐).𝛌.⧣𝟏). definition l3_i2: prototerm ≝ - (@(⧣𝟏).@(𝛌.⧣𝟏).𝛌.𝛌.⧣↑𝟐). + (𝛌.@(𝛌.⧣𝟏).𝛌.@(⧣𝟐).𝛌.⧣↑𝟐). + +definition l3_i2': prototerm ≝ + (𝛌.@(𝛌.⧣𝟏).𝛌.@(⧣𝟐).𝛌.⧣↑↑𝟐). definition l3_d1: prototerm ≝ - (@(⧣𝟏).@(𝛌.⧣𝟏).𝛌.𝛕𝟏.𝛌.⧣𝟏). + (𝛌.@(𝛌.⧣𝟏).𝛌.@(⧣𝟐).𝛕𝟏.(𝛌.⧣𝟏)). definition l3_d2: prototerm ≝ - (@(⧣𝟏).@(𝛌.⧣𝟏).𝛌.𝛕𝟏.𝛌.𝛕𝟏.⧣𝟏). + (𝛌.@(𝛌.⧣𝟏).𝛌.@(⧣𝟐).𝛕𝟏.𝛌.(⧣𝟐)). + +definition l3_d2': prototerm ≝ + (𝛌.@(𝛌.⧣𝟏).𝛌.@(⧣𝟐).𝛕𝟏.𝛌.𝛕𝟏.(⧣𝟐)). lemma l3_ti1: - l3_t ➡𝐢𝐛𝐟[𝗔◗𝗔◗𝗟◗𝐞] l3_i1. -@ibfr_appl_hd -@ibfr_eq_trans [| @ibfr_beta_0 // ] + l3_t ➡𝐢𝐛𝐟[𝗟◗𝗔◗𝗟◗𝗔◗𝐞] l3_i1. +@ibfr_abst_hd +@ibfr_eq_trans +[ | @(ibfr_beta_0 … (𝟎)) + [ /2 width=1 by pcc_A_sn, pcc_empty/ + | >list_append_lcons_sn /2 width=1 by in_comp_appl_hd/ + ] +] @appl_eq_repl [ // ] @abst_eq_repl +@(subset_eq_canc_sn … (fsubst_appl_hd …)) +@appl_eq_repl [ // ] @(subset_eq_canc_sn … (fsubst_empty_rc …)) @(subset_eq_canc_sn … (lift_term_abst …)) @abst_eq_repl @@ -50,34 +63,61 @@ lemma l3_ti1: qed. lemma l3_i12: - l3_i1 ➡𝐢𝐛𝐟[𝗔◗𝗔◗𝗟◗𝗟◗𝐞] l3_i2. -@ibfr_eq_trans [| @ibfr_beta_1 // ] -@appl_eq_repl [ // ] + l3_i1 ➡𝐢𝐛𝐟[𝗟◗𝗔◗𝗟◗𝗔◗𝗟◗𝐞] l3_i2. +@ibfr_abst_hd +@ibfr_appl_hd +@ibfr_abst_hd +@ibfr_eq_trans [| @ibfr_beta_0 // ] @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 // ] + l3_t ➡𝐝𝐛𝐟[𝗟◗𝗔◗𝗟◗𝗔◗𝐞] l3_d1. +@dbfr_abst_hd +@dbfr_eq_trans +[ | @(dbfr_beta_0 … (𝟎)) + [ /2 width=1 by pcc_A_sn, pcc_empty/ + | >list_append_lcons_sn /2 width=1 by in_comp_appl_hd/ + ] +] @appl_eq_repl [ // ] @abst_eq_repl -@(subset_eq_canc_sn … (fsubst_empty_rc …)) // +@(subset_eq_canc_sn … (fsubst_appl_hd …)) +@appl_eq_repl [ // ] +@(subset_eq_canc_sn … (fsubst_empty_rc …)) +@iref_eq_repl // qed. -lemma ld_di2: +lemma l3_di2: l3_i2 ⇔ ▼[𝐢]l3_d2. +@(subset_eq_canc_sn … (unwind2_term_abst …)) @abst_eq_repl @(subset_eq_canc_sn … (unwind2_term_appl …)) @appl_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_oref_pap …)) // +] +@(subset_eq_canc_sn … (unwind2_term_abst …)) @abst_eq_repl +@(subset_eq_canc_sn … (unwind2_term_appl …)) @appl_eq_repl +[ @(subset_eq_canc_sn … (unwind2_term_oref_pap …)) // +] +@(subset_eq_canc_sn … (unwind2_term_iref …)) +@(subset_eq_canc_sn … (unwind2_term_abst …)) @abst_eq_repl +@(subset_eq_canc_sn … (unwind2_term_oref_pap …)) // +qed. + +lemma l3_di2': + l3_i2' ⇔ ▼[𝐢]l3_d2'. +@(subset_eq_canc_sn … (unwind2_term_abst …)) @abst_eq_repl @(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_appl …)) @appl_eq_repl +[ @(subset_eq_canc_sn … (unwind2_term_oref_pap …)) // +] @(subset_eq_canc_sn … (unwind2_term_iref …)) @(subset_eq_canc_sn … (unwind2_term_abst …)) @abst_eq_repl @(subset_eq_canc_sn … (unwind2_term_iref …)) -- 2.39.2