X-Git-Url: http://matita.cs.unibo.it/gitweb/?a=blobdiff_plain;f=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frelocation%2Flifts_bind.ma;fp=matita%2Fmatita%2Fcontribs%2Flambdadelta%2Fbasic_2%2Frelocation%2Flifts_bind.ma;h=0000000000000000000000000000000000000000;hb=ff612dc35167ec0c145864c9aa8ae5e1ebe20a48;hp=fd56f4e6975b0a5a823b5321adc9d9182042d7dc;hpb=222044da28742b24584549ba86b1805a87def070;p=helm.git diff --git a/matita/matita/contribs/lambdadelta/basic_2/relocation/lifts_bind.ma b/matita/matita/contribs/lambdadelta/basic_2/relocation/lifts_bind.ma deleted file mode 100644 index fd56f4e69..000000000 --- a/matita/matita/contribs/lambdadelta/basic_2/relocation/lifts_bind.ma +++ /dev/null @@ -1,71 +0,0 @@ -(**************************************************************************) -(* ___ *) -(* ||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 "basic_2/syntax/ext2.ma". -include "basic_2/relocation/lifts.ma". - -(* GENERIC RELOCATION FOR BINDERS *******************************************) - -definition liftsb: rtmap → relation bind ≝ - λf. ext2 (lifts f). - -interpretation "uniform relocation (binder for local environments)" - 'RLiftStar i I1 I2 = (liftsb (uni i) I1 I2). - -interpretation "generic relocation (binder for local environments)" - 'RLiftStar f I1 I2 = (liftsb f I1 I2). - -(* Basic_inversion lemmas **************************************************) - -lemma liftsb_inv_unit_sn: ∀f,I,Z2. ⬆*[f] BUnit I ≘ Z2 → Z2 = BUnit I. -/2 width=2 by ext2_inv_unit_sn/ qed-. - -lemma liftsb_inv_pair_sn: ∀f:rtmap. ∀Z2,I,V1. ⬆*[f] BPair I V1 ≘ Z2 → - ∃∃V2. ⬆*[f] V1 ≘ V2 & Z2 = BPair I V2. -/2 width=1 by ext2_inv_pair_sn/ qed-. - -lemma liftsb_inv_unit_dx: ∀f,I,Z1. ⬆*[f] Z1 ≘ BUnit I → Z1 = BUnit I. -/2 width=2 by ext2_inv_unit_dx/ qed-. - -lemma liftsb_inv_pair_dx: ∀f:rtmap. ∀Z1,I,V2. ⬆*[f] Z1 ≘ BPair I V2 → - ∃∃V1. ⬆*[f] V1 ≘ V2 & Z1 = BPair I V1. -/2 width=1 by ext2_inv_pair_dx/ qed-. - -(* Basic properties *********************************************************) - -lemma liftsb_eq_repl_back: ∀I1,I2. eq_repl_back … (λf. ⬆*[f] I1 ≘ I2). -#I1 #I2 #f1 * -I1 -I2 /3 width=3 by lifts_eq_repl_back, ext2_pair/ -qed-. - -lemma liftsb_refl: ∀f. 𝐈⦃f⦄ → reflexive … (liftsb f). -/3 width=1 by lifts_refl, ext2_refl/ qed. - -lemma liftsb_total: ∀I1,f. ∃I2. ⬆*[f] I1 ≘ I2. -* [2: #I #T1 #f elim (lifts_total T1 f) ] -/3 width=2 by ext2_unit, ext2_pair, ex_intro/ -qed-. - -lemma liftsb_split_trans: ∀f,I1,I2. ⬆*[f] I1 ≘ I2 → - ∀f1,f2. f2 ⊚ f1 ≘ f → - ∃∃I. ⬆*[f1] I1 ≘ I & ⬆*[f2] I ≘ I2. -#f #I1 #I2 * -I1 -I2 /2 width=3 by ext2_unit, ex2_intro/ -#I #V1 #V2 #HV12 #f1 #f2 #Hf elim (lifts_split_trans … HV12 … Hf) -f -/3 width=3 by ext2_pair, ex2_intro/ -qed-. - -(* Basic forward lemmas *****************************************************) - -lemma liftsb_fwd_isid: ∀f,I1,I2. ⬆*[f] I1 ≘ I2 → 𝐈⦃f⦄ → I1 = I2. -#f #I1 #I2 * -I1 -I2 /3 width=3 by lifts_fwd_isid, eq_f2/ -qed-.