(**************************************************************************) (* ___ *) (* ||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/static/fid.ma". include "basic_2/static/fle_fqup.ma". (* FREE VARIABLES INCLUSION FOR RESTRICTED CLOSURES *************************) (* Properties with free variables identity for restricted closures **********) lemma fle_fid_sn: ∀L1,L2. |L1| = |L2| → ∀T1,T2. 𝐈⦃L1, T1⦄ → ⦃L1, T1⦄ ⊆ ⦃L2, T2⦄. #L1 #L2 #HL #T1 #T2 #HT1 elim (frees_total L1 T1) #f1 #Hf1 elim (frees_total L2 T2) #f2 #Hf2 /4 width=8 by lveq_length_eq, sle_isid_sn, ex4_4_intro/ qed. (* Inversion lemmas with free variables identity for restricted closures ****) lemma fle_inv_fid_dx: ∀L1,L2. |L1| = |L2| → ∀T1,T2. ⦃L1, T1⦄ ⊆ ⦃L2, T2⦄ → 𝐈⦃L2, T2⦄ → 𝐈⦃L1, T1⦄. #L1 #L2 #HL #T1 #T2 * #n1 #n2 #f1 #f2 #Hf1 #Hf2 #HL12 #Hf12 #HT2 #g1 #Hg1 elim (lveq_inj_length … HL12) // -HL -HL12 #H1 #H2 destruct lapply (frees_mono … Hf1 … Hg1) -Hg1 #Hfg1 /4 width=5 by sle_inv_isid_dx, isid_eq_repl_back/ qed-.