]> matita.cs.unibo.it Git - helm.git/blob - matita/matita/contribs/lambdadelta/static_2/s_computation/fqus_weight.ma
partial commit in static_2
[helm.git] / matita / matita / contribs / lambdadelta / static_2 / s_computation / fqus_weight.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 "static_2/s_transition/fquq_weight.ma".
16 include "static_2/s_computation/fqus.ma".
17
18 (* STAR-ITERATED SUPCLOSURE *************************************************)
19
20 (* Forward lemmas with weight for closures **********************************)
21
22 lemma fqus_fwd_fw: ∀b,G1,G2,L1,L2,T1,T2. ❪G1,L1,T1❫ ⬂*[b] ❪G2,L2,T2❫ →
23                    ♯❨G2,L2,T2❩ ≤ ♯❨G1,L1,T1❩.
24 #b #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqus_ind … H) -L2 -T2
25 /3 width=3 by fquq_fwd_fw, nle_trans/
26 qed-.
27
28 (* Advanced inversion lemmas ************************************************)
29
30 lemma fqus_inv_refl_atom3: ∀b,I,G,L,X. ❪G,L,⓪[I]❫ ⬂*[b] ❪G,L,X❫ → ⓪[I] = X.
31 #b #I #G #L #X #H elim (fqus_inv_fqu_sn … H) -H * //
32 #G0 #L0 #T0 #H1 #H2 lapply (fqu_fwd_fw … H1) lapply (fqus_fwd_fw … H2) -H2 -H1
33 #H2 #H1 lapply (nle_nlt_trans … H2 H1) -G0 -L0 -T0
34 #H elim (nlt_ge_false … H) -H /2 width=1 by nle_plus_bi_sn/
35 qed-.