]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/ground_2/relocation/rtmap_fcla.ma
- ng_kernel: we print the offending term when guarded_by_constructors fails
[helm.git] / matita / matita / contribs / lambdadelta / ground_2 / relocation / rtmap_fcla.ma
index 14542cf48337d20e02a4c751af00cb145ac120e1..26af72dfa27acc2c7dc302c5f4be4cd04fb77f8e 100644 (file)
@@ -58,6 +58,22 @@ lemma fcla_inv_xp: āˆ€g,m. š‚ā¦ƒgā¦„ ā‰” m ā†’ 0 = m ā†’ šˆā¦ƒgā¦„.
 #g #m #_ #_ #H destruct
 qed-.
 
+lemma fcla_inv_isid: āˆ€f,n. š‚ā¦ƒfā¦„ ā‰” n ā†’ šˆā¦ƒfā¦„ ā†’ 0 = n.
+#f #n #H elim H -f -n /3 width=3 by isid_inv_push/
+#f #n #_ #_ #H elim (isid_inv_next ā€¦ H) -H //  
+qed-.
+
+(* Main forward lemmas ******************************************************)
+
+theorem fcla_mono: āˆ€f,n1. š‚ā¦ƒfā¦„ ā‰” n1 ā†’ āˆ€n2. š‚ā¦ƒfā¦„ ā‰” n2 ā†’ n1 = n2.
+#f #n #H elim H -f -n
+[ /2 width=3 by fcla_inv_isid/
+| /3 width=3 by fcla_inv_px/
+| #f #n1 #_ #IH #n2 #H elim (fcla_inv_nx ā€¦ H) -H [2,3 : // ]
+  #g #Hf #H destruct /3 width=1 by eq_f/
+]
+qed-.
+
 (* Basic properties *********************************************************)
 
 lemma fcla_eq_repl_back: āˆ€n. eq_repl_back ā€¦ (Ī»f. š‚ā¦ƒfā¦„ ā‰” n).