1 (**************************************************************************)
4 (* ||A|| A project by Andrea Asperti *)
6 (* ||I|| Developers: *)
7 (* ||T|| The HELM team. *)
8 (* ||A|| http://helm.cs.unibo.it *)
10 (* \ / This file is distributed under the terms of the *)
11 (* v GNU General Public License Version 2 *)
13 (**************************************************************************)
15 include "basic_2/s_transition/fquq_weight.ma".
16 include "basic_2/s_computation/fqus.ma".
18 (* STAR-ITERATED SUPCLOSURE *************************************************)
20 (* Forward lemmas with weight for closures **********************************)
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, transitive_le/
28 (* Advanced inversion lemmas ************************************************)
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 (le_to_lt_to_lt … H2 H1) -G0 -L0 -T0
34 #H elim (lt_le_false … H) -H /2 width=1 by monotonic_le_plus_r/