(**************************************************************************) (* ___ *) (* ||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/relocation/lexs_length.ma". include "basic_2/static/frees_fqup.ma". include "basic_2/static/fid.ma". include "basic_2/static/lfeq.ma". (* SYNTACTIC EQUIVALENCE FOR LOCAL ENVIRONMENTS ON REFERRED ENTRIES *********) (* properties with free variables identity for restricted closures **********) lemma fid_lfeq: ∀L1,L2. |L1| = |L2| → ∀T. 𝐈⦃L1, T⦄ → L1 ≡[T] L2. #L1 #L2 #HL1 #T #HT elim (frees_total L1 T) #f #Hf /4 width=3 by lexs_length_isid, ex2_intro/ qed. (* Advanced properties with free variables identity for restricted closures *) lemma fid_length: ∀L1,L2. |L1| = |L2| → ∀T. 𝐈⦃L1, T⦄ → 𝐈⦃L2, T⦄. #L1 #L2 #HL #T #HT #g #Hg elim (frees_total L1 T) #f #Hf lapply (frees_mono f … Hg) -Hg [ /3 width=4 by fid_lfeq, frees_lfeq_conf/ | /3 width=3 by isid_eq_repl_back/ ] qed-.