]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambdadelta/basic_2/rt_computation/rsx_fqup.ma
more additions and corrections for the article
[helm.git] / matita / matita / contribs / lambdadelta / basic_2 / rt_computation / rsx_fqup.ma
diff --git a/matita/matita/contribs/lambdadelta/basic_2/rt_computation/rsx_fqup.ma b/matita/matita/contribs/lambdadelta/basic_2/rt_computation/rsx_fqup.ma
new file mode 100644 (file)
index 0000000..b41e150
--- /dev/null
@@ -0,0 +1,50 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+include "static_2/static/rdeq_fqup.ma".
+include "basic_2/rt_computation/rsx.ma".
+
+(* STRONGLY NORMALIZING REFERRED LOCAL ENV.S FOR UNBOUND RT-TRANSITION ******)
+
+(* Advanced properties ******************************************************)
+
+(* Basic_2A1: uses: lsx_atom *)
+lemma lfsx_atom (h) (G) (T): G āŠ¢ ā¬ˆ*[h,T] š’ā¦ƒā‹†ā¦„.
+#h #G #T
+@rsx_intro #Y #H #HnT
+lapply (lpx_inv_atom_sn ā€¦ H) -H #H destruct
+elim HnT -HnT //
+qed.
+
+(* Advanced forward lemmas **************************************************)
+
+(* Basic_2A1: uses: lsx_fwd_bind_dx *)
+(* Note: the exclusion binder (ā“§) makes this more elegant and much simpler *)
+(* Note: the old proof without the exclusion binder requires lreq *)
+lemma rsx_fwd_bind_dx_void (h) (G):
+      āˆ€p,I,L,V,T. G āŠ¢ ā¬ˆ*[h,ā“‘{p,I}V.T] š’ā¦ƒLā¦„ ā†’ G āŠ¢ ā¬ˆ*[h,T] š’ā¦ƒL.ā“§ā¦„.
+#h #G #p #I #L #V #T #H
+@(rsx_ind ā€¦ H) -L #L1 #_ #IH
+@rsx_intro #Y #H #HT
+elim (lpx_inv_unit_sn ā€¦ H) -H #L2 #HL12 #H destruct
+/4 width=4 by rdeq_fwd_bind_dx_void/
+qed-.
+
+(* Advanced inversion lemmas ************************************************)
+
+(* Basic_2A1: uses: lsx_inv_bind *)
+lemma rsx_inv_bind_void (h) (G):
+      āˆ€p,I,L,V,T. G āŠ¢ ā¬ˆ*[h,ā“‘{p,I}V.T] š’ā¦ƒLā¦„ ā†’
+      āˆ§āˆ§ G āŠ¢ ā¬ˆ*[h,V] š’ā¦ƒLā¦„ & G āŠ¢ ā¬ˆ*[h,T] š’ā¦ƒL.ā“§ā¦„.
+/3 width=4 by rsx_fwd_pair_sn, rsx_fwd_bind_dx_void, conj/ qed-.