]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/basic_2/static/fle_fqup.ma
- free variables innclusion (fle) encapsulates some complexity
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / static / fle_fqup.ma
1 (**************************************************************************)
2 (*       ___                                                              *)
3 (*      ||M||                                                             *)
4 (*      ||A||       A project by Andrea Asperti                           *)
5 (*      ||T||                                                             *)
6 (*      ||I||       Developers:                                           *)
7 (*      ||T||         The HELM team.                                      *)
8 (*      ||A||         http://helm.cs.unibo.it                             *)
9 (*      \   /                                                             *)
10 (*       \ /        This file is distributed under the terms of the       *)
11 (*        v         GNU General Public License Version 2                  *)
12 (*                                                                        *)
13 (**************************************************************************)
14
15 include "basic_2/static/frees_fqup.ma".
16 include "basic_2/static/fle.ma".
17
18 (* FREE VARIABLES INCLUSION FOR RESTRICTED CLOSURES *************************)
19
20 (* Advanced properties ******************************************************)
21
22 lemma fle_refl: bi_reflexive … fle.
23 #L #T elim (frees_total L T) /2 width=5 by sle_refl, ex3_2_intro/
24 qed.
25
26 lemma fle_bind_sn: ∀p,I,L,V,T. ⦃L, V⦄ ⊆ ⦃L, ⓑ{p,I}V.T⦄.
27 #p #I #L #V #T
28 elim (frees_total L V) #f1 #Hf1
29 elim (frees_total (L.ⓑ{I}V) T) #f2 #Hf2
30 elim (sor_isfin_ex f1 (⫱f2)) /3 width=3 by frees_fwd_isfin, isfin_tl/ #f #Hf #_
31 /3 width=6 by frees_bind, sor_inv_sle_sn, ex3_2_intro/
32 qed.
33
34 lemma fle_flat_sn: ∀I,L,V,T. ⦃L, V⦄ ⊆ ⦃L, ⓕ{I}V.T⦄.
35 #I #L #V #T
36 elim (frees_total L V) #f1 #Hf1
37 elim (frees_total L T) #f2 #Hf2
38 elim (sor_isfin_ex f1 f2) /2 width=3 by frees_fwd_isfin/ #f #Hf #_
39 /3 width=6 by frees_flat, sor_inv_sle_sn, ex3_2_intro/
40 qed.
41
42 lemma fle_flat_dx: ∀I,L,V,T. ⦃L, T⦄ ⊆ ⦃L, ⓕ{I}V.T⦄.
43 #I #L #V #T
44 elim (frees_total L V) #f1 #Hf1
45 elim (frees_total L T) #f2 #Hf2
46 elim (sor_isfin_ex f1 f2) /2 width=3 by frees_fwd_isfin/ #f #Hf #_
47 /3 width=6 by frees_flat, sor_inv_sle_dx, ex3_2_intro/
48 qed.