]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/s_computation/fqus_weight.ma
renaming in basic_2
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / s_computation / fqus_weight.ma
index 5a29848ccc31b907e894284222919f998e53750e..335651bc4c86c44f7d28ce857e418c0eae955ede 100644 (file)
@@ -19,7 +19,17 @@ include "basic_2/s_computation/fqus.ma".
 
 (* Forward lemmas with weight for closures **********************************)
 
-lemma fqus_fwd_fw: ∀G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊐* ⦃G2, L2, T2⦄ → ♯{G2, L2, T2} ≤ ♯{G1, L1, T1}.
-#G1 #G2 #L1 #L2 #T1 #T2 #H @(fqus_ind … H) -L2 -T2
+lemma fqus_fwd_fw: ∀b,G1,G2,L1,L2,T1,T2. ⦃G1, L1, T1⦄ ⊐*[b] ⦃G2, L2, T2⦄ →
+                   ♯{G2, L2, T2} ≤ ♯{G1, L1, T1}.
+#b #G1 #G2 #L1 #L2 #T1 #T2 #H @(fqus_ind … H) -L2 -T2
 /3 width=3 by fquq_fwd_fw, transitive_le/
 qed-.
+
+(* Advanced inversion lemmas ************************************************)
+
+lemma fqus_inv_refl_atom3: ∀b,I,G,L,X. ⦃G, L, ⓪{I}⦄ ⊐*[b] ⦃G, L, X⦄ → ⓪{I} = X.
+#b #I #G #L #X #H elim (fqus_inv_fqu_sn … H) -H * //
+#G0 #L0 #T0 #H1 #H2 lapply (fqu_fwd_fw … H1) lapply (fqus_fwd_fw … H2) -H2 -H1
+#H2 #H1 lapply (le_to_lt_to_lt … H2 H1) -G0 -L0 -T0
+#H elim (lt_le_false … H) -H /2 width=1 by monotonic_le_plus_r/
+qed-.