]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/matita/contribs/lambda/parallel_reduction.ma
- probe: new application to compute some data on the proof objects of
[helm.git] / matita / matita / contribs / lambda / parallel_reduction.ma
index 91fe30e1c91595025ccae0b573c56cf3c3db4254..1d97b3b87a4fbe5566e8ebb252619b5817d07f58 100644 (file)
@@ -12,8 +12,8 @@
 (*                                                                        *)
 (**************************************************************************)
 
-include "size.ma".
-include "labelled_sequential_reduction.ma".
+include "length.ma".
+include "labeled_sequential_reduction.ma".
 
 (* PARALLEL REDUCTION (SINGLE STEP) *****************************************)
 
@@ -24,13 +24,13 @@ inductive pred: relation term ≝
 | pred_vref: ∀i. pred (#i) (#i)
 | pred_abst: ∀A1,A2. pred A1 A2 → pred (𝛌.A1) (𝛌.A2) 
 | pred_appl: ∀B1,B2,A1,A2. pred B1 B2 → pred A1 A2 → pred (@B1.A1) (@B2.A2)
-| pred_beta: â\88\80B1,B2,A1,A2. pred B1 B2 â\86\92 pred A1 A2 â\86\92 pred (@B1.ð\9d\9b\8c.A1) ([â¬\90B2]A2)
+| pred_beta: â\88\80B1,B2,A1,A2. pred B1 B2 â\86\92 pred A1 A2 â\86\92 pred (@B1.ð\9d\9b\8c.A1) ([â\86\99B2]A2)
 .
 
 interpretation "parallel reduction"
     'ParRed M N = (pred M N).
 
-notation "hvbox( M break ⥤ break term 46 N )"
+notation "hvbox( M  break term 46 N )"
    non associative with precedence 45
    for @{ 'ParRed $M $N }.
 
@@ -38,7 +38,7 @@ lemma pred_refl: reflexive … pred.
 #M elim M -M // /2 width=1/
 qed.
 
-lemma pred_inv_vref: â\88\80M,N. M â¥¤ N → ∀i. #i = M → #i = N.
+lemma pred_inv_vref: â\88\80M,N. M â¤\87 N → ∀i. #i = M → #i = N.
 #M #N * -M -N //
 [ #A1 #A2 #_ #i #H destruct
 | #B1 #B2 #A1 #A2 #_ #_ #i #H destruct
@@ -46,8 +46,8 @@ lemma pred_inv_vref: ∀M,N. M ⥤ N → ∀i. #i = M → #i = N.
 ]
 qed-.
 
-lemma pred_inv_abst: â\88\80M,N. M â¥¤ N → ∀A. 𝛌.A = M →
-                     â\88\83â\88\83C. A â¥¤ C & 𝛌.C = N.
+lemma pred_inv_abst: â\88\80M,N. M â¤\87 N → ∀A. 𝛌.A = M →
+                     â\88\83â\88\83C. A â¤\87 C & 𝛌.C = N.
 #M #N * -M -N
 [ #i #A0 #H destruct
 | #A1 #A2 #HA12 #A0 #H destruct /2 width=3/
@@ -56,9 +56,9 @@ lemma pred_inv_abst: ∀M,N. M ⥤ N → ∀A. 𝛌.A = M →
 ]
 qed-.
 
-lemma pred_inv_appl: â\88\80M,N. M â¥¤ N → ∀B,A. @B.A = M →
-                     (â\88\83â\88\83D,C. B â¥¤ D & A â¥¤ C & @D.C = N) ∨
-                     â\88\83â\88\83A0,D,C0. B â¥¤ D & A0 â¥¤ C0 & ð\9d\9b\8c.A0 = A & [â¬\90D]C0 = N.
+lemma pred_inv_appl: â\88\80M,N. M â¤\87 N → ∀B,A. @B.A = M →
+                     (â\88\83â\88\83D,C. B â¤\87 D & A â¤\87 C & @D.C = N) ∨
+                     â\88\83â\88\83A0,D,C0. B â¤\87 D & A0 â¤\87 C0 & ð\9d\9b\8c.A0 = A & [â\86\99D]C0 = N.
 #M #N * -M -N
 [ #i #B0 #A0 #H destruct
 | #A1 #A2 #_ #B0 #A0 #H destruct
@@ -88,7 +88,7 @@ lemma pred_inv_lift: deliftable_sn pred.
   elim (lift_inv_abst … HM) -HM #A1 #HAC1 #H
   elim (IHD12 … HBD1) -D1 #B2 #HB12 #HBD2
   elim (IHC12 … HAC1) -C1 #A2 #HA12 #HAC2 destruct
-  @(ex2_intro â\80¦ ([â¬\90B2]A2)) /2 width=1/
+  @(ex2_intro â\80¦ ([â\86\99B2]A2)) /2 width=1/
 ]
 qed-.
 
@@ -122,8 +122,8 @@ qed-.
 
 lemma pred_conf1_appl_beta: ∀B,B1,B2,C,C2,M1.
                             (∀M0. |M0| < |B|+|𝛌.C|+1 → confluent1 ? pred M0) → (**) (* ? needed in place of … *)
-                            B â¥¤ B1 â\86\92 B â¥¤ B2 â\86\92 ð\9d\9b\8c.C â¥¤ M1 â\86\92 C â¥¤ C2 →
-                            â\88\83â\88\83M. @B1.M1 â¥¤ M & [â¬\90B2]C2 â¥¤ M.
+                            B â¤\87 B1 â\86\92 B â¤\87 B2 â\86\92 ð\9d\9b\8c.C â¤\87 M1 â\86\92 C â¤\87 C2 →
+                            â\88\83â\88\83M. @B1.M1 â¤\87 M & [â\86\99B2]C2 â¤\87 M.
 #B #B1 #B2 #C #C2 #M1 #IH #HB1 #HB2 #H1 #HC2
 elim (pred_inv_abst … H1 ??) -H1 [3: // |2: skip ] #C1 #HC1 #H destruct (**) (* simplify line *)
 elim (IH B … HB1 … HB2) -HB1 -HB2 //
@@ -131,7 +131,7 @@ elim (IH C … HC1 … HC2) normalize // -B -C /3 width=5/
 qed-.
 
 theorem pred_conf: confluent … pred.
-#M @(f_ind … size … M) -M #n #IH * normalize
+#M @(f_ind … length … M) -M #n #IH * normalize
 [ /2 width=3 by pred_conf1_vref/
 | /3 width=4 by pred_conf1_abst/
 | #B #A #H #M1 #H1 #M2 #H2 destruct
@@ -151,6 +151,6 @@ theorem pred_conf: confluent … pred.
 ]
 qed-.
 
-lemma lsred_pred: â\88\80p,M,N. M â\87\80[p] N â\86\92 M â¥¤ N.
+lemma lsred_pred: â\88\80p,M,N. M â\86¦[p] N â\86\92 M â¤\87 N.
 #p #M #N #H elim H -p -M -N /2 width=1/
 qed.