]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambda_delta/Basic_2/computation/cprs_tstc_vector.ma
- "functional" component moved to Apps_2
[helm.git] / matita / matita / contribs / lambda_delta / Basic_2 / computation / cprs_tstc_vector.ma
diff --git a/matita/matita/contribs/lambda_delta/Basic_2/computation/cprs_tstc_vector.ma b/matita/matita/contribs/lambda_delta/Basic_2/computation/cprs_tstc_vector.ma
new file mode 100644 (file)
index 0000000..d073bad
--- /dev/null
@@ -0,0 +1,34 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||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 "Basic_2/substitution/lift_vector.ma".
+include "Basic_2/computation/cprs_tstc.ma".
+
+(* CONTEXT-SENSITIVE PARALLEL COMPUTATION ON TERMS **************************)
+
+(* Vector form of forward lemmas involving same top term constructor ********)
+
+lemma cpr_fwd_theta_vector: ∀L,V1s,V2s. ⇧[0, 1] V1s ≡ V2s →
+                            ∀V,T,U. L ⊢ ⒶV1s. ⓓV. T ➡ U →
+                            ⒶV1s. ⓓV. T ≃ U ∨ L ⊢ ⓓV. ⒶV2s. T ➡* U.
+#L #V1s #V2s * -V1s -V2s /3 width=1/
+#V1s #V2s #V1a #V2a #HV12a * -V1s -V2s /2 width=1 by cpr_fwd_theta/ -HV12a
+#V1s #V2s #V1b #V2b #_ #_ #V #U #T #H
+elim (cpr_inv_appl1_simple … H ?) -H //
+#V0 #T0 #_ #_ #H destruct /2 width=1/
+qed-.
+
+axiom cprs_fwd_theta_vector: ∀L,V1s,V2s. ⇧[0, 1] V1s ≡ V2s →
+                            ∀V,T,U. L ⊢ ⒶV1s. ⓓV. T ➡* U →
+                            ⒶV1s. ⓓV. T ≃ U ∨ L ⊢ ⓓV. ⒶV2s. T ➡* U.
\ No newline at end of file